0

おそらくこれには簡単な解決策がありますが、これについては何も見つかりません.3つのフォームがあります:

  1. メインメニュー
  2. フォーム1
  3. フォーム2

メイン メニューとフォーム 1 の両方でフォーム 2 を起動できます。

  • Form 1 から Form 2 を起動すると、一部のボタンが無効になります。

でも

  • メイン メニューから Form 2 を起動すると、すべてが有効になります。

どこかに簡単な解決策があることは知っていますが、私が見つけることができるのは、フォームを開いてその親コン​​トロールを有効/無効にする方法であり、子フォームを開いてコントロールを無効にする方法だけです。

4

2 に答える 2

1

次のように Form2 クラスにプロパティを追加できます。

public bool HideSomeControls
{
    get;
    set;
}

次に、Form1.cs で Form2 を表示する直前に、そのプロパティを設定します。

form2instance.HideSomeControls = true;
form2instance.Show(); // or ShowDialog, depending...

次に、Load イベント ハンドラーを次のように Form2 に追加します。

private void Form2_Load(object sender, EventArgs e)
{
    if (HideSomeControls)
    {
        someControl.Visible = false;
        someOtherControl.Visible = false;
    }
}

MainMenuと が の 1 つのインスタンスをForm1共有している場合は、インスタンスを表示する前にを再度Form2設定する必要があることに注意してください。HideSomeControlsfalseMainMenuForm2

于 2015-05-15T21:07:53.967 に答える