winform下用户控件的问题,急!!! 我继承了usercontrol用户控件,在写程序的时候我动态加载显示了用户控件,问题是我始终不能把该控件显示在最前面,在显示的用户控件的区域内如果有其他控件,其他控件就将用户控件的部分内容给挡住了!请高手们帮帮忙! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当两个控件的location相同时,.net会将先Add到contain中的控件置入顶层。比如 textbox1和textbox2都在form1中:如果是this.Controls.Add(this.textBox1);this.Controls.Add(this.textbox2);这种情况textbox1在上边,如果是:this.Controls.Add(this.textBox2);this.Controls.Add(this.textbox1);那么textbox1在上边。因为你的usercontrol是后加的,所以被遮盖了。 代码里写个usercontrol.BringToFront 我不是将usercontrol1托到界面上的,而是运行程序的时候加载进去的,所以没有办法點右鍵,選“提到最上層” 代码里写个usercontrol.BringToFront 好像也不行啊,我没有显示到最前面啊 那就把你那个挡他的那控件SendToBack usercontrol.BringToFront();也没有成功啊,还是有原来界面设计的控件挡住了我动态加载的用户控件啊! 我把挡他的那控件SendToBack,也没有起到效果啊, 每個控件都有自己的controls屬性,如果你想讓你的自定義控件在其它控件上面的話(比如就是Pane控件吧),你可以這樣寫myPane.Controls.Add( yourUserControl ); i = this.TextBox1.Location.X; j = this.TextBox1.Location.Y +this.TextBox1.Height; JXCXT.Uc huiyiGrid2 = new JXCXT.Uc(); huiyiGrid2.Size = new Size(400, 600); huiyiGrid2.Location = new Point(i,j); this.listView1.SendToBack(); huiyiGrid2.BringToFront(); this.Controls.Add(huiyiGrid2);我的程序如上,还是没有显示到我要得效果啊 这个是的,问题是我panel控件里面不只是个我要加载的用户控件啊,我还有在panel界面上设计的静态windows控件啊~! to tjvictor(初学者) :他的控件是动态加载故在设计阶段还没有实例化所以你的方法不好使而是在将usercontrol加到form中前先将重叠的控件remove调再将usercontrol加进来再加进原来的控件即:textbox1原有,textbox2动态生成(置顶)则:private void ToTop(){ this.Controls.Remove(textBox1); this.Controls.Add(textbox2);/////顺序不要变 this.Controls.Add(textbox1);/////}这样就行了。 先 add this.Controls.Add(huiyiGrid2); 后 BringToFront huiyiGrid2.BringToFront(); 请问:gyhanonline,如果我textbox1是设计界面的时候静态设计的,该怎么办呢? 哦,感谢gyhanonline,感谢wdy99270,你们两的方法都是可行的,谢谢!~~~~ ??什么下边?不覆盖住?还是下边界?要是下边界直接找到标准控件的location,将控件的location算一下不就成了。 BringToBack()这样是把控件放到最下方,自然就在你说的某个控件的下面了。 打开excel时,时灵时不灵为什么? Winform外部进程启动后,焦聚问题! C#动态菜单 高分求解(任何有点基础的都可以进) 在线等!!!! 很简单的DataGrid或DataGridView问题 远程服务器返回错误: (530) 未登录。C# ftp报错 dotnetcharting 如果实现动态浏览图表 像股票那样 阿房收集制作的技术资料电子书 WinForm交流,新建QQ群组:1800537 寻求用.Net 中对Web应用进行版本控制,且多人同时开发的管理方式。 删除新闻和其相关图片,麻烦大家近来帮忙 如何设定DataGrid中的caption的居中对齐(绝对给分)
比如 textbox1和textbox2都在form1中:
如果是
this.Controls.Add(this.textBox1);
this.Controls.Add(this.textbox2);
这种情况textbox1在上边,
如果是:
this.Controls.Add(this.textBox2);
this.Controls.Add(this.textbox1);
那么textbox1在上边。
因为你的usercontrol是后加的,所以被遮盖了。
j = this.TextBox1.Location.Y +this.TextBox1.Height;
JXCXT.Uc huiyiGrid2 = new JXCXT.Uc();
huiyiGrid2.Size = new Size(400, 600);
huiyiGrid2.Location = new Point(i,j);
this.listView1.SendToBack();
huiyiGrid2.BringToFront();
this.Controls.Add(huiyiGrid2);我的程序如上,还是没有显示到我要得效果啊
即:
textbox1原有,textbox2动态生成(置顶)则:
private void ToTop()
{
this.Controls.Remove(textBox1);
this.Controls.Add(textbox2);/////顺序不要变
this.Controls.Add(textbox1);/////
}
这样就行了。
先 add
this.Controls.Add(huiyiGrid2);
后 BringToFront
huiyiGrid2.BringToFront();
这样是把控件放到最下方,自然就在你说的某个控件的下面了。