2016-12-05 2 views
0

Ich bin nur ein Anfänger für die Programmierung und ich möchte programmgesteuert Elemente in checklistbox mit datagridview überprüfen.Wie checklistbox Elemente mit datagridview vb.net überprüfen?

Werte der Datenrasteransicht sind durch Kommata wie diese getrennt jhon,Metilda,saman,.

Checklistbox Name wie chklistinput und bitte helfen Sie mir, dies zu lösen?

‚Full-Codierung ist hier ..............................

Private Sub TextBox10_TextChanged(sender As Object, e As EventArgs) Handles TextBox10.TextChanged 

'this is ok and searching as I want 

    Dim SearchV As String = TextBox10.Text 
    SearchV = "%" + TextBox10.Text + "%" 

    Me.PassIssuingRecordTableAdapter.FillBy(Me.Database4DataSet.PassIssuingRecord, SearchV) 


'But the problem bigins here 

    Dim areasback As String = DataGridView1.Rows(0).Cells(6).Value.ToString 
    Dim areasback1 As String() = areasback.Split(",") 

    For Each x In areasback1 
     For i = 0 To areasback.Count - 1 

      If chklistInput.Items(i).ToString() = x.ToString() Then 
       chklistInput.SetItemChecked(i, False) 
      End If 

     Next 
    Next 

End Sub 
+0

Möchten Sie die Elemente aktiviert oder nicht? 'chklistInput.SetItemChecked (i, False)' setzt das Element auf nicht überprüft. Mach es wahr, um es zu überprüfen. Angenommen, die Anzahl der Elemente in "resortsback" entspricht der Anzahl der Elemente im CheckListBox-Steuerelement, kann gefährlich sein. – LarsTech

+0

Ich habe viele verschiedene Möglichkeiten ausprobiert, aber nichts funktioniert für mich. Wieder probierte ich es mit "wahrer" Aussage. aber dasselbe Ergebnis. Muss ich irgendetwas vom Eigenschaftsmenü ändern ?. Manchmal ist es frustrierend, wenn einfacher Code nicht abgeschlossen werden kann. Bitte helfen Sie? – user3236873

+0

Verwenden Sie den Debugger. Stoppen Sie die erste "für jede" Zeile, führen Sie den Code aus, wenn er anhält, bewegen Sie den Mauszeiger über die Variablen, um die Werte zu prüfen. – LarsTech

Antwort

0

Sie Schleife haben über chklistInput.Items.Count - 1 statt areasback.Count - 1

den folgenden Code verwenden:

Dim areasback As String = DataGridView1.Rows(0).Cells(6).Value.ToString 
Dim areasback1 As String() = areasback.Split(",") 
Dim intCount as integer = 0 

For each str as string in areasback1 

    For intCount = 0 To chklistInput.Items.Count - 1 

     If chklistInput.Items(intCount).ToString() = str Then 
      chklistInput.SetItemChecked(intCount , True) 
     End If 

    Next 

Next 

chklistInput.Refresh() 

Hinweis: Vergleich Groß- und Kleinschreibung

+0

Vielen Dank für die schnelle Antwort. Ich habe genauen Code verwendet, aber nichts passiert. Möglicherweise füge ich diesen Code an der falschen Stelle hinzu. Bitte berate mich. – user3236873

+0

Schauen Sie @LarsTech Kommentar – Hadi

+0

@hardi. Danke und ich habe das auch versucht. aber das Endergebnis kommt nicht. – user3236873

Verwandte Themen