我有DataGridView下面,我需要根據收到的一些文件檢查單元格,我正在尋找最好的方法來做到這一點,我認爲這將是可能的插入由列的名稱,並在單元格中值的行通過傳遞列和行名填充datagridview
的位置是
如果我想紀念位置0,0我會的名稱看f或31 - SEGUROS(列的名稱),並(行的名稱),然後它會被標記細胞0,0
這是可能的嗎?
我有DataGridView下面,我需要根據收到的一些文件檢查單元格,我正在尋找最好的方法來做到這一點,我認爲這將是可能的插入由列的名稱,並在單元格中值的行通過傳遞列和行名填充datagridview
的位置是
如果我想紀念位置0,0我會的名稱看f或31 - SEGUROS(列的名稱),並(行的名稱),然後它會被標記細胞0,0
這是可能的嗎?
DataGridView具有包含RowIndex和ColumnIndex的CurrentCell屬性。
還有CellEnter事件,其中DataGridViewCellEventArgs包含RowIndex和ColumnIndex。
存在具有重載接受索引或名稱的行和列屬性。但是,列的名稱和列標題之間存在差異。在你的情況下,「31 - SEGUROS」是列的標題,而不是它的名稱。每個Column對象都有一個HeaderText屬性。
如果沒有選擇列或行,其索引將爲-1。
你在尋找行列索引嗎?我看了你的問題,三次,還是它看起來像它...
VB.NET:
Dim MyVal = 1234
Dim ColIdx = 5
Dim RowIdx = 10
Me.DataGridView1.Rows(RowIdx).Cells(ColIdx).Value = MyVal
C#:
Dynamic MyVal = 1234;
Dynamic ColIdx = 5;
Dynamic RowIdx = 10;
this.DataGridView1.Rows(RowIdx).Cells(ColIdx).Value = MyVal;
您還可以通過他們的名字解決行和單元格,只需將他們的名字放在雙引號中即可。
按列名獲取列索引(在標題不是文本):
VB.NET:
Private Function GetColIdx(MyStringName As String)
Dim ColIdx As Int16
For ic = 0 To Me.DataGridView1.Columns.Count - 1
Dim dc As DataGridViewColumn = Me.DataGridView1.Rows(ic)
If dc.Name = MyStringName Then
ColIdx = ic
Exit For
End If
Next
Return ColIdx
End Function
C#:
Private Object GetColIdx(String MyStringName)
{
Int16 ColIdx = default(Int16);
For (ic = 0; ic <= this.DataGridView1.Columns.Count - 1; ic++) {
DataGridViewColumn dc = this.DataGridView1.Rows(ic);
If (dc.Name == MyStringName) {
ColIdx = ic;
break;
}
}
Return ColIdx;
}
要獲得列索引,您只需調用(C#)函數,其名稱爲:
GetColIdx("SEGUROS")
類似的功能可以按名稱獲取行。儘管使用行名很不常見,但這是可能的。它也可以修改爲匹配標題中的文本,但名稱更安全。