0
我想創建一個包含常見任務類的類庫。如何通過製作classLibrary點擊gridview後填充所有文本框?
我做了這樣一個類,在某些形式上工作得很好,但它有一些我無法追查的錯誤。
這是我的代碼,並執行以下操作:
- 它接受3個參數:表單名稱,datagridview的名稱和文本框中的名稱前綴。
- 它統計的數據網格列
- 它採用當前行的索引
- 它與對應的列數
- 它看起來的形式有一個名字的所有文本框的長度數組prefix參數+列名,並在其中設置的值
代碼:
Sub setRecordFieldToControl(ByVal root As Form, ByVal dgv As DataGridView, ByVal cntrlPreNam1 As String, ByVal cntrlPreNam2 As String)
Dim j, k, z As Integer
Dim s As String
z = dgv.ColumnCount
k = dgv.CurrentRow.Index
j = 0
Dim headTxt(z) As String
For indx = 0 To z - 1
headTxt(indx) = dgv.Columns(indx).HeaderText
Next
For Each i As Control In root.Controls
If TypeOf i Is MaskedTextBox Or TypeOf i Is ComboBox Then
For clm = 0 To z
If i.Name = cntrlPreNam1 & headTxt(clm) Or i.Name = cntrlPreNam1 & headTxt(clm) Then
s = (dgv.Rows(k).Cells(j).Value)
i.Text = s
' i.Text = dgv.Item(j, k).Value
j = j + 1
If j >= z Then
Exit For
End If
End If
Next
End If
Next
End Sub
我的問題是:在某些形式我得到這個錯誤:
Index is out of range for line i.Text = s
誤差不出來,當我把別的東西在我的文本框,當我把,它出現的錯誤纔會出現。
我現在修正了它,但它再次給我這個錯誤:「索引超出範圍。必須是非負數且小於集合的大小。 參數名稱:索引「 – 2013-12-13 00:38:10
您正在尋找正確名稱的列(clm),但是取另一列(j)的值。爲什麼?您的邏輯沒有問題? –
感謝您的幫助。我使用這些代碼的初學者,我使用你的代碼並在我的程序中測試它,但仍然給我同樣的錯誤 –