C# は、隠れたメイン ウィンドウをサブウィンドウに表示します。シンプルで実用的です。

今日クライアントプログラムを書いたとき、サーバーに接続するときにメインウィンドウを非表示にし、サブウィンドウをポップアップ表示したいと思いました。メインウィンドウを表示したい場合は、サブウィンドウのボタンをクリックして戻ります。

こんな感じで出来るのではないかと思いました↓

ClientForm clientform=new ClientForm();//实例化
clientform.Visible=true;//隐藏为false

自分がナイーブすぎることに気づきました。これは新しいウィンドウを開くだけですが、これは元のウィンドウではありません

それで、インターネットで検索しましたが、探しているものが見つからないことがわかりました。別のブロガーがタイマーメソッドを書いているのを見たので、これは実現可能ですが、もっと簡単にできるように感じます。

それで私は自分でそれを書き始めました。

まず、子ウィンドウで静的ウィンドウ変数を定義し、渡されたメイン ウィンドウ変数を保存します。

static Form ClientFormSet;//定义一个静态窗口变量去存储主窗口,方便调用

次に、メイン ウィンドウがサブ ウィンドウを開いたときに、メイン ウィンドウを渡します。

MiniClientForm miniform = new MiniClientForm(this);//实例化子窗口,传入本窗口。
MiniformSet.Show();//创建小窗口

仮パラメータもサブウィンドウのコードに追加する必要があります。

public MiniClientForm(ClientForm clientForm)//窗口函数,此时传入了大窗口
        {
            InitializeComponent();
            ClientFormSet = clientForm;//用刚刚定义的静态变量存储大窗口
            
        }

これで、メイン ウィンドウを自由に表示/非表示にすることができます。

if (IsBigFormOpen == false)//这里是我自己定的bool值。如果窗口未打开,则打开
            {
                ClientFormSet.Visible = true;
                IsBigFormOpen = true;//已打开
                ReturnSettingBtn.Text = "隐藏设置";
            }
            else
            {
                ClientFormSet.Visible = false;
                ReturnSettingBtn.Text = "返回设置";
                IsBigFormOpen = false;//已关闭
            }

とてもシンプルです!

おすすめ

転載: blog.csdn.net/aa989111337/article/details/126013537
おすすめ