私の C# Winforms アプリケーションには、2 から 64 までのリストボックスを含む tablelayoutpanel があります。ユーザーは、Listbox 内の任意の項目をダブルクリックできます。これにより、項目の情報が、既に開かれているモーダレス ウィンドウに転送されます。
私の質問は次のとおりです。
イベントがどのリストボックスから呼び出されたかを知るにはどうすればよいですか?
リストボックスがtablelayoutpanel内にある行/列を把握する方法はありますか?
イベントがどのリストボックスから呼び出されたかを知るにはどうすればよいですか?
void ListBox_SomeEvent(object sender, EventArgs e)
{
var lb = (ListBox)sender; // that's the one
}
リストボックスがtablelayoutpanel内にある行/列を把握する方法はありますか?
私はそのクラスであまり働いていないので、私はよくわかりません。ListBox
親コンテナー内の の境界四角形を確かに取得できますが、ドキュメントを一瞥したところ、明白なもの (つまり、プロパティTableLayoutPanel
のようなもの) は見当たりませんでした。Columns
イベントが呼び出されたリストボックスを知るにはどうすればよいですか?
エドS.はすでにそれに答えました。イベントハンドラーをリストボックスにアタッチする必要があることに言及するかもしれません。
var newListbox = new ListBox();
newListbox.DoubleClick += ListBox_SomeEvent;
_myTableLayouter.Controls.Add(newListBox);
リストボックスがテーブルレイアウトパネル内にある行/列を把握する方法はありますか?
TableLayoutPanel.GetCellPosition()を使用します。ここで、行と列を含むTableLayoutPanelCellPositiontionが返されます。