我有一个从数据库加载到dataGridView的数据,效果如下:
(在最终版本中我更愿意隐藏PatientID列)
我尝试做的是当用户点击相应行中的ANYWHERE时返回PatientID的值(即用户点击" Doe"返回的值是" 2" )。谁能给我一个提示怎么做?我不认为有值会员属性......我正在尝试Rowindex但是从顶部返回行数的值(D'呃?!)
此外,用户在单击单个单元格时是否可以突出显示整行?
编辑:哦,上帝,我已经深夜花了几个小时找到这个,早上我放弃并张贴在这里......只是为了在5分钟后找到答案:string test = dataGridView1.Rows[e.RowIndex].Cells["PatientID"].FormattedValue.ToString();
尽管如此,这仍然是我强调整行的第二个问题。
答案 0 :(得分: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
关于问题的第二部分,将DataGridView的SelectionMode
属性设置为FullRowSelect
修改的
如果隐藏该列,则无法使用编辑中的解决方案。要使用.Cells[idx].FormattedValue
访问该值,该值必须可见。但即使你隐藏了这个列,也可以使用这个。
答案 1 :(得分:0)
对于第二个问题,将选择模式设置为FullRowSelect,当用户点击它时,将突出显示整行。您可以在设计器或代码中设置此属性:
DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;