選択した行からデータを読み取り、簡単に編集できるListViewように各値を表示する方法を見つけようとしています。TextBox
最初の最も簡単な方法は次のようなものです。
ListViewItem item = listView1.SelectedItems[0];
buyCount_txtBox.Text = item.SubItems[1].Text;
buyPrice_txtBox.Text = item.SubItems[2].Text;
sellPrice_txtBox.Text = item.SubItems[3].Text;
そのコードに問題はありませんが、データを表示する必要があるのは約 40 以上TextBoxesあります。40 かそこらすべてをコーディングするのは非常に面倒です。
私が思いついた解決策は、TextBox次のようにユーザー コントロール内のすべてのコントロールを取得することです。
foreach (Control c in this.Controls)
{
foreach (Control childc in c.Controls)
{
if (childc is TextBox)
{
}
}
}
ListView次に、選択した行の列ヘッダーをループする必要があります。列ヘッダーが TextBox.Tag と一致する場合は、該当する TextBox に列の値を表示します。
最終的なコードは次のようになります。
foreach (Control c in this.Controls)
{
foreach (Control childc in c.Controls)
{
// Needs another loop for the selected ListView Row
if (childc is TextBox && ColumnHeader == childc.Tag)
{
// Display Values
}
}
}
それで、私の質問は次のようになります。選択したListView行と各列ヘッダーをループするにはどうすればよいですか。