1

C#.Netフォームアプリケーションを使用して、グリッドビューの選択した行を別のフォームに表示するには?

コーディングでこれに答えてください。別のフォームで最初のフォーム グリッドビューにアクセスできません。グリッドビューの値を別のフォームのテキスト ボックスに保存したいと考えています。

4

1 に答える 1

0

後の行の場合、これを行う最も簡単な方法は、各行をデータバインドオブジェクトにすることです。これは、プロパティを含む任意のクラスを使用して行うことができます。

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;
于 2013-02-13T07:02:42.437 に答える