C#.Netフォームアプリケーションを使用して、グリッドビューの選択した行を別のフォームに表示するには?
コーディングでこれに答えてください。別のフォームで最初のフォーム グリッドビューにアクセスできません。グリッドビューの値を別のフォームのテキスト ボックスに保存したいと考えています。
後の行の場合、これを行う最も簡単な方法は、各行をデータバインドオブジェクトにすることです。これは、プロパティを含む任意のクラスを使用して行うことができます。
class Foo
{
public string Column1 { get; set; }
public float Column2 { get; set; }
public int Column3 { get; set; }
}
次に、タイプ Foo のバインディング リストを dataGridView にアタッチします。このリストを自分で設定するか、dataGridView を使用してユーザーがリストに設定できるようにすることができます。
BindingList<Foo> source = new BindingList<Foo>();
// Add items/rows to list if needed...
dataGridView.DataSource = source;
選択した行を取得する場合は、dataGridView の SelectedRows プロパティを使用します。各行には、元のバインディング リストのデータ オブジェクトを保持する DataBoundItem プロパティが含まれます。これを使用する方法の例として、選択したオブジェクトの新しいリストを作成し、それを 2 番目のフォームに渡して表示または変更することができます。
List<Foo> selected = new List<Foo>();
foreach (DataGridViewRow row in dataGridView1.SelectedRows)
selected.Add(row.DataBoundItem as Foo);
// Assuming your second form has a property for the list to be passed into.
form2.SelectionList = selected;