1

私のmenuStripには、複数のフォームがあります。

そのため、そのうちの1つでは、作成したログインフォームからパスを使用する場合にのみアクセスしたいと考えています。

menustrip、menuがform1にあり、ログインフォームがForm2であるとしましょう。

では、これをどのように組み合わせれば、ユーザーが最初にform2ログインを渡したときにmenustripフォームが開くようになります。

私は変数を渡すだけで見つけたネットで一日中検索していて、それが本当ならform1が飛び出しますが、うまくいきませんでした!

4

2 に答える 2

2

どこかに、ユーザーがログインしているかどうかを通知する静的なブール値プロパティが必要になります。

public static class Config {
    public static bool LoggedIn { get; private set; }

    public static Login ()
    {
        var frm = new frmLogin();
        if (frm.ShowDialog() == DialogResult.OK) {
            LoggedIn = frm.LoggedIn;
        }
    }
}

再びパブリックがありますが、今回frmLoginは非静的プロパティLoggedInであり、ユーザー名とパスワードに問題がない場合はtrueに設定します。

次に、menustripフォームで、フォームActivatedイベントハンドラーでメニュー項目を有効または無効にします。

private void Form1_Activated(object sender, EventArgs e)
{
    myToolStripMenuItem.Enabled = Config.LoggedIn;
}
于 2011-12-11T21:14:45.183 に答える
0

よく考えて、「form2からform1の何かを変更するなどの入力が必要form 1ですform2

最高ではないかもしれませんが、機能します

今まで私を助けてきた最も簡単な解決策は、あなたが

  1. menuStripからモディファイアをproperties作成 public
  2. でインスタンスを作成しForm1ますForm2
  3. menuStripから変更Form2

たとえば、

Form2.cs

 public partial class ViewCars : Form
    {
        Form1 mainForm;
        public ViewCars (Form1 MainForm)
        {
           this.mainForm = MainForm;
        }
    }

     private void LoginButton_Click(object sender, EventArgs e)
     {
         mainForm.menuStrip.Visible = false;
     }

さて、あなたがインスタンスを作るとき、あなたは パラメータForm2を与える必要があります。this

ViewCars view = new ViewCars(this);
view.Show();

これはあなたがそれで何でもできるコントロールに限定されません幸運

于 2011-12-11T21:30:54.823 に答える