VSの使用このクラスXI内のメインフォーム(ソフトウェアが実行されたときに最初に開かれたもの)とクラスXは、アクセスする必要があるメソッドYを別のフォームから作成しましたクラスを静的にすることはできませんし、XY()を試してみるとクラスのインスタンスを参照する必要があることは明らかです。とにかく、このメインフォームのインスタンスへの参照をもう一度インスタンス化しないでください。プログラムが実行されたときなどにインスタンス化されたと思いますか?別のクラスからのメインフォームメソッドへのアクセス
答えて
FormX
をという名前のメソッドがあり、AnotherClass
からアクセスしたいとします。あなたがイベントを定義ウェア上記のコードを使用して子クラスのclass FormX
ため
定義、メインフォーム
class FormX
{
public delegate void refreshDelegate();
public event refreshDelegate refreshEvent;
AnotherClass AnotherClassInstance = new AnotherClass();
public FormX()
{
refreshEvent += new refreshDelegate(MethodY);
AnotherClassInstance.AccessParentMethod = refreshEvent;
}
public void MethodY()
{
// do something
}
}
定義AnotherClass
public class AnotherClass
{
public Delegate AccessParentMethod;
public void ClassMethod()
{
// Access form method
AccessParentMethod.DynamicInvoke();
}
}
refreshEvent
:そのためにあなたは、このように使用することができますrefreshDelegate
のタイプであり、インスタンスを介してAnotherClassのAccessParentMethod
という代理人に割り当てられます。したがって、AccessParentMethod.DynamicInvoke()
を呼び出すと、実際にはメインクラスのMethodY()
が呼び出されます。子オブジェクトのいくつかの引数をメインクラスに渡す場合は、デリゲート定義で次のように変更します。
public delegate void refreshDelegate(object SomeValue);
public event refreshDelegate refreshEvent;
// Changes in MethodY
public void MethodY(object SomeValue)
{
// do something
}
が続いて次のコードを使用
MethodY
を呼び出すことができます。
AccessParentMethod.DynamicInvoke("This is the argument");
落ち着きを楽しんでください;隠れている敵ではない、理由を明らかにする。投稿を改善するのに役立つかもしれない –
あなたの投稿は私にはうまく見えます。私はあなたが低品質の質問に答えるために下降したと推測しています。 – DeanOC
- 1. 別のクラスからのメソッドへのアクセス
- 2. 別のクラスからのUIへのアクセス
- 3. 別のクラスからのフォームメンバーへのアクセス
- 4. 別のクラスからのフォームコンポーネントへのアクセス
- 5. 別のクラスからマスターページコントロールへのアクセス
- 6. 別のクラスへのアクセス
- 7. 別のクラスからJava MEクラスへのアクセス
- 8. あるクラスから別のクラスへのNSMutableDictionaryの値へのアクセスと変更iOS
- 9. Javaのあるクラスから別のクラスへのJDBC接続変数へのアクセス
- 10. C#あるクラスから別のクラスへのメンバー変数へのアクセス
- 11. Javaの別のクラスからの静的変数へのアクセス
- 12. 別のクラスからのJava Swing/AWTコンポーネントへのアクセス
- 13. 別のView Controllerクラスからの配列へのアクセス
- 14. 別のクラスからのハッシュマップ値へのアクセス
- 15. 別のクラスからの変数へのアクセス
- 16. c# - 別のクラスから実行中のオブジェクト参照へのアクセス
- 17. 別のクラスの関数へのアクセス
- 18. 別のクラスの配列リストへのアクセス
- 19. 別のクラスの変数へのアクセス
- 20. 別のクラスのセッターメソッドへのアクセス
- 21. 別のクラスのフィールドへのアクセス
- 22. 別のクラスのScrollViewデリゲートメソッドへのアクセス
- 23. Java - 別のクラスのサブクラスコンストラクタへのアクセス
- 24. 別のフォームからのデータグリッドへのアクセス
- 25. 別のアセンブリからのリソースファイルへのアクセス
- 26. 別のサーバーからのデータベースへのアクセス
- 27. 別のスレッドからのメインスレッドビューへのアクセス
- 28. クラスからクラスへの変数へのアクセス
- 29. SpringからのEJBクラスへのアクセス
- 30. クラスからの関数へのアクセス
2番目のフォームにデリゲートを入れて、クラス 'X' –
内の別のフォームclass' 'のインスタンスを作成しているとし、メインフォームのメソッドへの参照を渡します。次に、2番目の形式で呼び出すことができます。 – DeanOC
nope、@ un-luckyではない –