1

選択した行からデータを読み取り、簡単に編集できる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行と各列ヘッダーをループするにはどうすればよいですか。

4

1 に答える 1