2017-07-03 5 views
0

Ich weiß, wie Artikel einstellen zu überprüfen:Sets CheckedListBox Artikel überprüft, ob Valuemember = etwas

checkedListBox.SetItemChecked(index, true); 

, aber ich habe es genannt, wenn ich Form am Öffnen mit dem Parameter von int[] valueMembers so mag ich jeden Wert Mitglied überprüfen Das ist = zu diesem Parameter zu überprüfen. Hier ist, was ich versucht habe:

public NovaPoruka(int[] primalacID) 
    { 
     InitializeComponent(); 

     foreach(CheckedListBox o in checkedListBox1.Items) 
     { 
      if(primalacID.Contains(Convert.ToInt32(o.SelectedValue))) 
      { 
       o.SetItemChecked(o.SelectedIndex, true); 
      } 
     } 
    } 

Edit: Ich habe nicht gesehen, dass ich nicht checkedListBox initialisiert haben vor, dies zu tun, so war es nicht Fehler fallen, aber jetzt, wenn ich gemacht, dass ich fällt mir Fehler bei CheckedListBox o in checkedListBox1.Items so habe ich wenig Änderung gemacht, aber immer noch nicht wissen, wie man Index des aktuellen Artikels, der in foreach Schleife ist, erhalten. Hier wird geändert Code:

foreach(Int_String o in checkedListBox1.Items) 
{ 
    if(primalacID.Contains(Convert.ToInt32(o._int))) 
    { 
      checkedListBox1.SetItemChecked(checkedListBox1.SelectedIndex, true); 
    } 
} 

aktuelle Art und Weise ausgewählten Index immer wieder ich -1

+0

Und? Was ist das Problem? Hast du vergessen zu erklären, warum dieser Code nicht funktioniert? – Steve

+0

Es einfach nicht. Es überprüft es nicht und lässt keinen Fehler fallen –

+0

Ich habe einige Bearbeitung gemacht, damit es einfacher für Sie sein kann –

Antwort

0

Ich habe es getan. Hier ist der endgültige Code:

for(int i = 0; i < checkedListBox1.Items.Count; i++) 
{ 
    Int_String s = checkedListBox1.Items[i] as Int_String; 
    if(primalacID.Contains(s._int)) 
    { 
     checkedListBox1.SetItemChecked(i, true); 
    } 
} 
Verwandte Themen