1

DataGridViewデータベースの検索結果を表示するために使用するunboundがあります。行はプログラムによって配置されます。オブジェクトを読み取り専用に設定していますが、誰かが行のセルの 1 つをダブルクリックした場合DataGridViewに、新しい Windows で元のレコードを開いて編集したいと考えています。Formこれをトリガーするために使用するイベントが であることはわかっていますdataGridView1_CellContentDoubleClickが、dataGridView1 がバインドされていないため、次に何をすべきかよくわかりません。

たとえば、またはから主キーを取得する方法はありますobject senderEventArgs e? RowIndexfromを取得できますがe、(私が思うに) DataGridView 内の行インデックスを参照するため、それは主キーと同じではありません。

4

1 に答える 1

1

Chris が以下のコメントで述べたように、SelectedRows プロパティを設定するには、次のように設定する必要があります。

dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect

それ以外の場合DataGridViewCellEventArgs eは、ColumnIndexダブルクリックされた列の のみが表示されます。

選択モードが設定されると、次のようなことができる場合があります。

public void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
    // sender is just dataGridView1 btw..
    var selectedRow = dataGridView1.SelectedRows[0];
    var primaryKey = selectedRow.Cells["primaryKeyColumnName"].Value;
}
于 2013-06-05T19:14:50.350 に答える