1

親フォーム関数(メソッド)にアクセスしようとしています。staticキーワードを使用しても機能しません。

親フォームはタイプ(MDI)であり、通常の子フォームがあります。これはC#アプリケーションです。この方法を使用してメソッドにアクセスしようとしていますが、進歩はありません!

this.MdiParent

私を助けてください !

4

5 に答える 5

11

静的メソッドを宣言した場合は、親フォームのクラス名を使用してそれらを呼び出す必要があります。

YourParentFormType.YourStaticMethod();

インスタンス メソッドを使用する場合は、それらを次のように宣言し、publicMDI 親参照をキャストして呼び出す必要があります。

((YourParentFormType)this.MdiParent).YourInstanceMethod();
于 2012-10-25T14:54:47.650 に答える
3

this.MdiParent正しい型にキャストする必要があります。

親フォームのタイプが の場合はMyForm

 ((MyForm)this.MdiParent).MyMethod();

静的メソッドも同様: 適切な型で呼び出す

MyForm.MyStaticMethod();
于 2012-10-25T14:55:32.147 に答える
0

this.MdiParentは、Form型のインスタンスを返します

これは、Formクラス定義で定義されている関数のみが表示されることを意味します。

他のメソッドに到達するには、フォームを実装するクラスタイプにキャストする必要があります。

((MyForm)Form).MyFunction()

于 2012-10-25T14:57:00.833 に答える
0

静的メソッドには、を使用してアクセスできますType.Method()

MdiParentインスタンスメソッドにアクセスする場合は、を正しいタイプにキャストする必要があります。

MyParentType parent = (MyParentType)this.MdiParent;
parent.SomeMethod();
于 2012-10-25T14:57:17.413 に答える
0

MdiParentフォームを作成するときに、フォームのプロパティを設定する必要があります。

// Make the new form a child form.
child.MdiParent = this;
// Display the child form.
child.Show();

その後、親フォームにアクセスできます。Form プロパティだけが必要な場合は、キャストする必要はありません。

Form parent = this.MdIParent;
string parentTitle = parent.Text;

カスタム プロパティ/メソッドにアクセスする必要がある場合は、適切な型にキャストするだけです。

ParentForm parent = this.MdIParent as ParentForm;   // using your own type name of course
string title = parent.MyStringProperty;
于 2012-10-25T15:05:32.453 に答える