Pogledajte određenu poruku
Staro 07. 04. 2013.   #8
noviKorisnik
Dejan Katašić
Wrote a book
 
Avatar noviKorisnik
 
Datum učlanjenja: 10.06.2005
Lokacija: Novi Sad
Poruke: 1.017
Hvala: 129
86 "Hvala" u 43 poruka
noviKorisnik će postati "faca" uskoro
Default

Znači da je comboBox vezan opet za neki drugi DataSet (ili slično) sa svim ili nekim korisnicima. Tako on ne sadrži kolekciju stringova već nekih (meni nepoznatih) objekata.

Ako tako pokušamo da tražimo IndexOf sa stringom, dobićemo uvek -1 za SelectedIndex... Što će kasti da smo selektovali ništa.

Ideja - prođeš kroz kolekciju comboBoxa i nađeš objekat koji ima odgovarajući UserName... pa njega proslediš kao parametar u IndexOf i ima da radi.

Trebalo bi da bude nešto slično sledećem:
Kôd:
public void SetUser(string userName)
{
    IEnumerator enumerator = comboBox1.Items.GetEnumerator();

    while
        (
            enumerator.MoveNext()
            && ((MyType)enumerator.Current).UserName != userName
        )
        { }//prazna petlja, MoveNext radi sve potrebno

    try
    {
        comboBox1.SelectedIndex
            = comboBox1
            .Items
            .IndexOf((MyType)enumerator.Current);
    }
    catch (InvalidOperationException e)
    {
        MessageBox.Show("Eh, nije postavljeno, evo poruke: " + e.Message);
    }
}
Umesto MyType treba da ide stvarni tip kolekcije kojom je napunjen kombo, a .UserName valja da zameni ono što će da čita vrednost polja korisničkog imena.
noviKorisnik je offline   Odgovorite uz citat
"Hvala" noviKorisnik za poruku: