親フォーム関数(メソッド)にアクセスしようとしています。staticキーワードを使用しても機能しません。
親フォームはタイプ(MDI)であり、通常の子フォームがあります。これはC#アプリケーションです。この方法を使用してメソッドにアクセスしようとしていますが、進歩はありません!
this.MdiParent
私を助けてください !
静的メソッドを宣言した場合は、親フォームのクラス名を使用してそれらを呼び出す必要があります。
YourParentFormType.YourStaticMethod();
インスタンス メソッドを使用する場合は、それらを次のように宣言し、public
MDI 親参照をキャストして呼び出す必要があります。
((YourParentFormType)this.MdiParent).YourInstanceMethod();
this.MdiParent
正しい型にキャストする必要があります。
親フォームのタイプが の場合はMyForm
、
((MyForm)this.MdiParent).MyMethod();
静的メソッドも同様: 適切な型で呼び出す
MyForm.MyStaticMethod();
this.MdiParentは、Form型のインスタンスを返します
これは、Formクラス定義で定義されている関数のみが表示されることを意味します。
他のメソッドに到達するには、フォームを実装するクラスタイプにキャストする必要があります。
((MyForm)Form).MyFunction()
静的メソッドには、を使用してアクセスできますType.Method()
。
MdiParent
インスタンスメソッドにアクセスする場合は、を正しいタイプにキャストする必要があります。
MyParentType parent = (MyParentType)this.MdiParent;
parent.SomeMethod();
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;