0

データベースからdataGridViewにデータをロードしましたが、効果は次のようになります。

患者データ グリッド ビューのサンプル

(最終バージョンでは、PatientID 列を非表示にすることをお勧めします)

私がやろうとしているのは、ユーザーが対応する行のどこかをクリックしたときのPatientIDの戻り値です(つまり、ユーザーが「Doe」をクリックし、返される値は「2」です)。誰でもこれを行う方法のヒントを教えてもらえますか? valueMember プロパティがないと思います... Rowindex を試していたのですが、上から数えた行数の値を返します(D'uh?!)

また、単一のセルをクリックしたときにユーザーが行全体を強調表示する方法はありますか?

編集:ああ、私はこれを見つけるために夜遅くに数時間を費やしました.朝、私はあきらめてここに投稿しました.5分後に答えを見つけるためだけに:

string test = dataGridView1.Rows[e.RowIndex].Cells["PatientID"].FormattedValue.ToString();

それでも、行全体の強調表示に関する 2 番目の質問が残ります。

4

2 に答える 2

1

datagridview が何らかのデータ ソース ( DataView) にバインドされている場合は、次のようDataBoundItemにプロパティ を使用できます。

DGV.CurrentRow.DataBoundItem["PatientID"]

また

DGV.SelectedRows[0].DataBoundItem["PatientID"]

また

DGVUnderlyingBindingSource.Current["PatientID"]

DataGridView が厳密に型指定されたデータ ソース (例: BindingList) にバインドされている場合、上記を次のように使用できます。

((PatientType)DGV.CurrentRow.DataBoundItem).PatientID 

また

((PatientType)DGV.SelectedRows[0].DataBoundItem).PatientID

また

((PatientType)PatientTypeBindingSource.Current).PatientID

質問の 2 番目の部分については、DataGridView のSelectionModeプロパティをFullRowSelect

編集

その列を非表示にすると、編集からソリューションを使用できなくなります。その値を使用して値にアクセスするには、.Cells[idx].FormattedValueその値が表示されている必要があります。ただし、列を非表示にしても、これを使用できます。

于 2012-04-19T21:52:16.873 に答える
0

2 番目の質問では、選択モードを FullRowSelect に設定すると、ユーザーがクリックしたときに行全体が強調表示されます。この属性は、デザイナーまたはコードで設定できます。

DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
于 2012-04-19T21:55:42.640 に答える