簡體   English   中英

VB.NET BindingSource不能是其自己的數據源…datagridview中的錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM