3

1 つのパネル コントロールを含む 1 つの MDI フォームと、MDI のパネルを非表示にする 1 つのボタンを含む 1 つのフォームがあります。

MDI 形式のコード:

    public void displayInit()
    {
        panel1.Visible = false;
    }

Form1 のコード:

        private void button1_Click(object sender, EventArgs e)
    {
        displayInit();
    }

エラー: The name 'displayInit' does not exist in the current context. 何かアドバイスはありますか?

4

2 に答える 2

4

親を参照してみてください(そしてそれをキャストしてください):

((MyMDIForm)this.MDIParent).displayInit();

ただし、これはおそらく最善の方法ではありません。子フォームが MDI 親にイベントを発生させることを検討してください。関心事の分離。

于 2012-08-15T16:01:55.780 に答える
0

メソッドdisplayinit()インスタンスメソッドなので、呼び出すにはインスタンスが必要です。

MyMDIForm.displayInit();

MDI フォームを構築するときは、それへの参照を保持し、その参照をメソッドの呼び出し時に使用します。

于 2012-08-15T16:01:47.587 に答える