1

MDI フォームにボタンを配置しましたが、子フォームを開くと、ボタンが上に残り、子フォームの邪魔になります。解決する方法はありますか? 子がアクティブ化されたときにボタンを送り返すために、次のことを行いました。しかし、button1.BringToFront(); を呼び出したいと思っています。

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

私は以下を試しましたが、うまくいきません。

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

.net の永続的なバグだと思います。解決しようとする投稿がたくさんあります。パネルとのドックなどを使用しますが、ボタンのためだけにドッキングすると、アプリケーションの作業スペースが少なくなります。

4

1 に答える 1

0

私は私の質問への答えを見つけました! これが私がそれを実装した方法です。ここの投稿は私が見逃していたものでした。

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 ();
        }
于 2010-09-14T04:53:16.480 に答える