MDI窗体中的控件出现问题

时间:2010-09-13 07:16:17

标签: c# .net winforms mdi mdichild

我在MDI表单上放了一个按钮,现在当我打开一个子表单时,按钮保持在顶部并分散了子表单,是否有办法解决它? 当我激活任何一个孩子时,我已经完成了向后发送按钮。但我想知道是否可以调用button1.BringToFront();

private void MDIParent1_MdiChildActivate(object sender, EventArgs e)
{
    button1.SendToBack();
}

我试过了,但它不起作用。

private void MDIParent1_Enter(object sender, EventArgs e)
{
    button1.BringToFront();
}

我认为它是.net的持久性错误,有很多帖子试图解决它,使用Dock与面板等,但只是按钮对接使应用程序工作空间更少。

1 个答案:

答案 0 :(得分:0)

我找到了问题的答案!这是我实现它的方式,帖子here就是我所缺少的。

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