私は複数のコンポーネントを持つ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. Reactでボタンをクリックしてコンポーネントをレンダリングする方法は?
- 2. ボタンをクリックしたときにパネルのコンポーネントを無効にする方法
- 3. Xamarin.Forms - ボタンをクリックする方法ボタンをクリックする方法
- 4. ボタンをクリックするたびに反応コンポーネントをレンダリングする方法は?
- 5. ボタンのクリックでコンポーネントの色を変更する方法
- 6. ボタンをクリックした後にボタンを無効にする方法
- 7. ボタンをクリックする方法
- 8. ボタンのクリックで子コンポーネントを読み込む方法4
- 9. しばらくクリックしたボタンを確認する方法
- 10. ボタンをクリックした後に要素を保持する方法
- 11. ボタンをクリックしたときにダイアログボックスを表示する方法
- 12. ボタンをクリックした後にデータを検証する方法は?
- 13. selenium:ボタンをクリックした後にページソースコードを取得する方法
- 14. ボタンをクリックした後にスタイルを保持する方法
- 15. ボタンをクリックしたリストビュー項目を選択する方法
- 16. ボタンをクリックしたときにテキストを表示する方法
- 17. ボタンをクリックしたときにキーボードをアクティブにする方法
- 18. ボタンをクリックした後にチェックボックスをクリアする方法
- 19. テキストボックスをクリックしたときにボタンをフォーカスする方法
- 20. ボタンをクリックした後に変数を使用する方法
- 21. jquery:ボタンをクリックしたラベルを取得する方法は?
- 22. ボタンをクリックした直後にウィジェットビューを更新する方法
- 23. フォームを送信せずにボタンをクリックしてボタンをクリックする方法
- 24. ボタンをクリックして別のボタンを表示する方法は?
- 25. ボタンのラベルテキストを使用してボタンをクリックする方法
- 26. フォームのボタンをクリックしたときのボタンの変更方法
- 27. プログラムをトレースする方法
- 28. CMakeLists.txtをトレースする方法
- 29. JSPをトレースする方法
- 30. jQueryでボタンをクリックしたときにスクロールする方法
WPFまたはWinForms? – StaWho