ボタンクリックイベントでカスタムEventArgsクラスにアクセスする方法は?
質問
フォローアップとして:
ボタンクリックまたはその他のメソッドを使用して、カスタムEventargsクラス内のパブリック変数にアクセスするにはどうすればよいですか?
カスタムイベント引数クラスの例: ジェネラコディセタグプレ
button_clickイベントの背後にあるコード: ジェネラコディセタグプレ
助けてくれてありがとう。
解決
ボタンクリックイベントが発生すると、「e」に渡されるジェネラコダイスタグコードが作成されます。そのオブジェクトはあなたが作成したのではなく、フレームワーク自体が作成したもので、EventArgs
型です。これにより、別のタイプにキャストできなくなります。
EventArgs
を発生させるイベントが必要な場合は、できればTraderEventArgs
タイプのイベントを作成し、自分で制御できる場所でこのイベントを発生させる必要があります。これにより、正しいタイプのクラスを生成し、それを(別のイベントハンドラーで)直接処理できます。
他のヒント
それはできません。EventArgs
イベントのClick
は、常にEventArgs
タイプです。イベント引数はボタンによって作成され、ボタンはTraderEventArgs
について何も知らないため、TraderEventArgs
型であるとは期待できません。それが機能する唯一の方法は、Button
の代わりにTraderEventArgs
を使用してイベントを発生させる独自のEventArgs
コントロールを作成する場合です。
解決策:カスタムデリゲートと、データ(Datable、Arrayなど)を介してカスタムイベントの引数を渡します。
そのために正しいデータが返されます。
コアC#と.NET 3.7。参加者とイベント > http://flylib.com/books/en/4.253.1.38/1/a>