扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
题主是不是用的 TabControl1.Controls.Add(TabPage1) 或者 TabControl1.TabPages.Add(TabPage1) 这种方法添加的?
站在用户的角度思考问题,与客户深入沟通,找到绍兴网站设计与绍兴网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、成都做网站、企业官网、英文网站、手机端网站、网站推广、国际域名空间、虚拟主机、企业邮箱。业务覆盖绍兴地区。
这样的话不但添加的第二个页面是空白的,第一个页面也会变成空白,因为对系统来说,存在了两个 TabPage1,而原先 TabPage1 里的控件用的是 Me.TabPage1.Controls.Add(Label1) 之类的方法添加进去的,有两个 TabPage1 系统就糊涂了不知道是该往哪一个里面加,所以就出现了两个都是空白的。
可以用的变通的方法实现。
比如:
用一个 Panel 承装 TabPage1 里的所有控件,在选中 TabPage2 时,执行
TabPage1.Controls.Remove(Panel1)
TabPage2.Controls.Add(Panel1)
先移除再添加,这样就不会出错了。
再比如:
最初设计 TabPage1 的时候就不要先添加进去,而是作为一个基类,有点儿说不明白,看代码吧:
在C#Form1的左边加一个treeview控件。
在其中填入节点1和节点2.他们的Text分别叫:主机1、主机2.然后再在Form1的右边拉一个tabcontrol控件。
他的里边当然自动生成tabpage1和tabpage2.再填一个空的tabpage3.
要求:当执行的时候,显示空的tabpage3。
点主机1,tabpage1显示,tabpage2隐藏。点主机2,tabpage2显示,tabpage1隐藏。
以下使用NodeMouseClick事件,相应鼠标左键点击2个节点,设置Tag属性(当然判断text属性也可以,但是不建议)
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
if (e.Node.Tag.ToString() == "1")
{
tabPage2.Parent = null;
tabPage1.Parent = this.tabControl1;
}
if (e.Node.Tag.ToString() == "2")
{
tabPage1.Parent = null;
tabPage2.Parent = this.tabControl1;
}
}
}
参考这个:
先在项目属性中的设置里设值
改变值并保存:
My.Settings.myColor = Color.AliceBlue
My.Settings.Save()
当窗体加载时使用这个设置:
Me.BackColor = My.Settings.myColor
你可以先把程序的焦点改到其它地方,然后应该可以触发了。比如设置窗体的AcceptButton,把某个控件(比如一个按钮)的TabIndex改成0之类的,当然手动改焦点可以,调用某个按钮的Focus方法,把窗体的ActiveControl属性设为这个按钮,反正一开始别让TabPage设为焦点即可
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流