我有一个包含3列的DataGridView(metric_key,metric_name,metric_value)。
例如,此表中有6个ROWS(6个不同的指标),以编程方式添加(DGV不受任何约束)
现在,当我在网格中指定值时,我会这样做:
dataGridView1.item("Metric_value",0).value = "value of the metric in row 0, in the column named "metric_Value".
但是,我正在寻找一种方法来使用metric_Key
列中的值来完成我的任务,例如:
datagridView1.item("metric_Value","My_metric_Key")
而不是放行ID,或者可能是:
datagridview1.item("metric_value",Indexof("My_metric_Key"))
或
datagridview1.item("metric_value",findValue("my_metric_key","metric_key"))
等
我不想创建任何其他对象(dataview等)。
我该怎么做?
答案 0 :(得分:2)
没有内置方法可以做到这一点。但是您可以在DataGridView上定义一个扩展方法来完成此任务。
<System.Runtime.CompilerServices.Extension()> _
Function FindValue(ByRef dgv As DataGridView, ByVal metric_key As Object) As DataGridViewRow
For Each row As DataGridViewRow In dgv.Rows
If row.Cells.Item("metric_value").Value = metric_key Then
Return row
End If
Next
Return Nothing
End Function
因此,如果您想获得metric_value为1的行,则可以使用
dataGridView1.FindValue(1)