C# MDI表单中的控件存在问题
我已经在MDI表单上放置了一个按钮,现在当我打开一个子表单时,该按钮保持在顶部,并分散了子表单的注意力,有没有解决方法? 我已经完成了以下操作,以便在任何子项被激活时将按钮发回。但是我想调用button1.BringToFront() 我试着跟着,但没用C# MDI表单中的控件存在问题,c#,.net,winforms,mdi,mdichild,C#,.net,Winforms,Mdi,Mdichild,我已经在MDI表单上放置了一个按钮,现在当我打开一个子表单时,该按钮保持在顶部,并分散了子表单的注意力,有没有解决方法? 我已经完成了以下操作,以便在任何子项被激活时将按钮发回。但是我想调用button1.BringToFront() 我试着跟着,但没用 private void MDIParent1_Enter(object sender, EventArgs e) { button1.BringToFront(); } 我认为这是.net的一个持久性缺陷,有很多帖子试图解决它,使用
private void MDIParent1_Enter(object sender, EventArgs e)
{
button1.BringToFront();
}
我认为这是.net的一个持久性缺陷,有很多帖子试图解决它,使用带有面板的dock等,但是仅仅为了一个按钮而停靠会减少应用程序的工作空间 我找到了我问题的答案!下面是我是如何实现它的,这篇文章是我所缺少的
public MDIParent1()
{
InitializeComponent();
foreach (var ctl in this.Controls)
{
if (ctl is MdiClient)
{
(ctl as MdiClient).GotFocus += Client_gotfocus;
(ctl as MdiClient).LostFocus += Client_lostfocus;
break;
}
}
}
private void Client_gotfocus(object sender, EventArgs e)
{
button1.BringToFront();
}
private void Client_lostfocus(object sender, EventArgs e)
{
button1.SendToBack ();
}
所以基本上senttoback在工作,但是bringtofront不工作,是吗?@siddharth,不,bringtofront不工作!
public MDIParent1()
{
InitializeComponent();
foreach (var ctl in this.Controls)
{
if (ctl is MdiClient)
{
(ctl as MdiClient).GotFocus += Client_gotfocus;
(ctl as MdiClient).LostFocus += Client_lostfocus;
break;
}
}
}
private void Client_gotfocus(object sender, EventArgs e)
{
button1.BringToFront();
}
private void Client_lostfocus(object sender, EventArgs e)
{
button1.SendToBack ();
}