0

1 回のボタン クリックでいくつかのボタン クリック イベントをまとめて呼び出す必要があります。どのように書くのですか?ここでマルチキャスト デリゲートの概念を使用できますか?

私のシナリオ:

XYZという名前のボタンがあります。これをクリックすると、アプリケーションの他のボタン用に作成したイベント ハンドラーを 1 つずつ呼び出す必要があります。

誰でもこれで私を助けることができますか?
私はこのリンクを通過しました:http://www.codeproject.com/Articles/1077/Delegates-in-managed-C しかし、それは私にとってはうまくいきません:(

4

1 に答える 1

0

使用できるMicrosoftVisualC ++に制限されている場合は、管理対象の世界__eventと非常によく似ています。event

最初に、メソッドの前にイベントを作成するメソッドを宣言します__event

__event void OnButtonClicked(...);

次に、メソッドを含むクラスを次のように装飾します。

[event_source(native)]
class MyEventGenerator
{
public:
    __event void OnButtonClicked(const void* pSender, const void* pArguments);
};

イベントを発生させるには、関数を呼び出すだけです(__raiseキーワードの前に付けることはオプションですが、イベントを発生させるコードで明確になります)。単純なメソッド呼び出しであるため、クラスの外部からイベントを発生させることもできることに注意してください。

イベントの処理に使用するクラスは、次のように装飾する必要があります。

[event_receiver(native)]
class CMyEventReceiver
{
public:
    void OnButtonClicked(const void* pSender, const void* pArguments);
};

イベントを添付するには、砂糖がないので、クラス+=内に次のようなものを書く必要があります。CMyEventReceiver

 __hook(&CMyEventGenerator::OnButtonClicked, pEventGenerator,
    &CMyEventReceiver::OnButtonClicked);

__unhookイベントハンドラーをデタッチするには、キーワードを使用する必要があることに注意してください。

于 2012-06-05T13:37:57.833 に答える