[英]VB.NET BindingSource cannot be its own data source … error in a datagridview
我試圖在datagridview內進行搜索,遍歷每個單元格並比較2個字符串-SearchString和CellString。
我將工作划分為四個並行工作的線程(通過為每個線程分配不同的行數)。 線程不能同時讀取一個和相同的單元格,因為它們遍歷不同的行,因此我認為錯誤不存在。
每個線程執行以下操作:
dim CellString as string
For i As Integer = startrow To endrow
For Each cell As DataGridViewCell In DataGridView.Rows(i).Cells
CellString = cell.Value.ToString.ToLower ''Error appears here
If cell.ColumnIndex <> 4 Then
Select Case Compare(CellString, SearchString) ''complex function that compares 2 strings
''....
End Select
End If
Next
Next
我得到的錯誤是:
BindingSource不能是其自己的數據源。 不要將DataSource和DataMember屬性設置為引用回BindingSource的值。
我不明白為什么會這樣,因為我不會把BindingSource或DataSource弄亂。 另外,我不做任何更新,我只將每個單元格讀取為一個字符串。
我找不到任何類似的問題,因此不勝感激!
沒有看到完整的代碼,很難准確地回答問題,但是所有內容都表明您正在嘗試從創建的線程訪問UI的某些元素(Datagridview屬於其中)。
根據微軟的說法,這是不合法的:
通過設計,除創建窗體或控件的線程外,不能在其他線程上調用Windows窗體或控件方法
查看本文以獲取更多信息。 它幫助我解決了類似的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.