【问题标题】:Problem with controls in MDI formMDI表单中的控件问题
【发布时间】:2010-09-13 07:16:17
【问题描述】:

我在MDI窗体上放了一个按钮,现在打开子窗体时,按钮停留在顶部,分散了子窗体的注意力,有什么办法解决吗? 当任何孩子被激活时,我已经完成以下操作以将按钮发回。但我想调用 button1.BringToFront();

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

我试过了,但是没用。

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

我认为它是 .net 的一个持久错误,有很多帖子试图解决它,使用带有面板的停靠栏等,但停靠只是为了一个按钮会减少应用程序的工作空间。

【问题讨论】:

  • 所以基本上 senttoback 是有效的,但 Bringtofront 不是,是吗?
  • @siddharth,没有带来不工作!

标签: c# .net winforms mdi mdichild


【解决方案1】:

我找到了问题的答案!这是我实现它的方法,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 ();
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-27
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    相关资源
    最近更新 更多