私は複数のコンポーネントを持つC#でGUIを作成しました。各コンポーネントには1つのボタンがあります。クリックされたボタンがどのコンポーネントであったのかを知りたい。私は最初からコンポーネントの数が分からないので、ユーザーが必要な場合に追加することができるので、名前を付けたり、名前を付けたりすることはできません。ありがとう!ボタンをクリックしたコンポーネントをトレースする方法
0
A
答えて
1
「コンポーネント」ごとに、ボタンのClickイベントに接続されている可能性があります。
この場合、イベントハンドラで "sender"パラメータを使用し、既知のコントロールツリー構造に基づいてそこから解決します。
void button_Clicked(object sender, EventArgs e)
{
var button = sender as Button;
var ownerControl = button.Parent as MyControl; // But you may need to walk up more levels if need be... Depends on your UI structure.
// Do stuff with button and owner control
}
いっそ、「バブル」あなたの「コンポーネント」からのイベント、それが独自のイベントですがありますように:
public event EventHandler ButtonClicked;
protected virtual void OnButtonClicked()
{
var handler = ButtonClicked;
if (handler != null)
{
handler(this, EventArgs.Empty);
}
}
void button_Clicked(object sender, EventArgs e)
{
OnButtonClicked(); // Bubble the event
}
次に(すべての「コンポーネント」と)あなたの主制御します各生成されたアイテムのButtonClickedイベントにフックし、ハンドラのsender
パラメータからアイテムを直接見つけることができます。
0
イベントの作成を提案します。 Button各コンポーネントをクリックし、イベントハンドラ内の引数としてobject sender
引数として使用します。
関連する問題
- 1. しばらくクリックしたボタンを確認する方法
- 2. ボタンをクリックした後にチェックボックスをクリアする方法
- 3. ボタンをクリックしたときにキーボードをアクティブにする方法
- 4. ボタンをクリックした後に要素を保持する方法
- 5. ボタンをクリックして別のボタンを表示する方法は?
- 6. jQueryでボタンをクリックしたときにスクロールする方法
- 7. ボタンで選択したタブを変更する方法WPFでタブをクリックするヘッダーのボタンでTabControlをクリック
- 8. OpenERPでボタンをクリックした後でボタンを無効にする方法
- 9. ログアウト後に「戻る」ボタンをクリックしたユーザーを扱う方法
- 10. ボタンをクリックした後に.txtを表示させる方法
- 11. JSPをトレースする方法
- 12. ウェブサイトのボタンをクリックする方法は?
- 13. Seleniumでjavascriptボタンをクリックする方法
- 14. UISwitchボタンをクリックする方法
- 15. extjsでボタンをクリックした後にウィンドウを開く方法
- 16. "クリア"ボタンをクリックしてフィルタをクリアした後にデータテーブルをリフレッシュする方法
- 17. コンポーネントをクリックして関数を呼び出す方法は?
- 18. ボタンをクリックしながら、テキストファイルを表示する方法を
- 19. Androidでクリックされたボタンを処理する方法は?
- 20. アコーディオンでボタンがクリックされたインデックスを特定する方法
- 21. JPanelでクリックしたJavaコンポーネント -
- 22. 追加する方法リスナーをインフレしたXMLボタンにクリックしますか?
- 23. ボタンをクリックしてDataTableのセル値を設定する方法
- 24. asp.netボタンをクリックしてPrevious/Nextレコードを設定する方法
- 25. JQueryダイアログボックスのボタンをクリックしてメインフォームを送信する方法
- 26. コードを使用してボタンのクリックをシミュレートする方法は?
- 27. ボタンをクリックしてimageViewで画像を変更する方法
- 28. Flash AS2.0のボタンをクリックしてムービークリップをアニメーション化する方法
- 29. ShinyのボタンをクリックしてtabPanelをカスタマイズする方法
- 30. ボタンをクリックしてiFrameをフルスクリーンにする方法は?
WPFまたはWinForms? – StaWho