Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MDI表单中的控件存在问题_C#_.net_Winforms_Mdi_Mdichild - Fatal编程技术网

C# MDI表单中的控件存在问题

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的一个持久性缺陷,有很多帖子试图解决它,使用

我已经在MDI表单上放置了一个按钮,现在当我打开一个子表单时,该按钮保持在顶部,并分散了子表单的注意力,有没有解决方法? 我已经完成了以下操作,以便在任何子项被激活时将按钮发回。但是我想调用button1.BringToFront()

我试着跟着,但没用

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 ();
        }