1

私の C# Winforms アプリケーションには、2 から 64 までのリストボックスを含む tablelayoutpanel があります。ユーザーは、Listbox 内の任意の項目をダブルクリックできます。これにより、項目の情報が、既に開かれているモーダレス ウィンドウに転送されます。

私の質問は次のとおりです。

  1. イベントがどのリストボックスから呼び出されたかを知るにはどうすればよいですか?

  2. リストボックスがtablelayoutpanel内にある行/列を把握する方法はありますか?

4

2 に答える 2

3

イベントがどのリストボックスから呼び出されたかを知るにはどうすればよいですか?

void ListBox_SomeEvent(object sender, EventArgs e)
{
    var lb = (ListBox)sender;  // that's the one
}

リストボックスがtablelayoutpanel内にある行/列を把握する方法はありますか?

私はそのクラスであまり働いていないので、私はよくわかりません。ListBox親コンテナー内の の境界四角形を確かに取得できますが、ドキュメントを一瞥したところ、明白なもの (つまり、プロパティTableLayoutPanelのようなもの) は見当たりませんでした。Columns

于 2012-09-03T06:30:45.943 に答える
2

イベントが呼び出されたリストボックスを知るにはどうすればよいですか?

エドS.はすでにそれに答えました。イベントハンドラーをリストボックスにアタッチする必要があることに言及するかもしれません。

var newListbox = new ListBox();
newListbox.DoubleClick += ListBox_SomeEvent;
_myTableLayouter.Controls.Add(newListBox);

リストボックスがテーブルレイアウトパネル内にある行/列を把握する方法はありますか?

TableLayoutPanel.GetCellPosition()を使用します。ここで、行と列を含むTableLayoutPanelCellPositiontionが返されます。

于 2012-09-03T06:45:23.007 に答える