Avatar
Criess
Člen
Avatar
Criess:

Ahoj, je nějakoá možnost, jak přidávat položky do ComboBoxu a zase je mazat z kódu? Potřebujii mít jen jedon ComboBox, ve kterém by se dynamicky měnily položky. Předem děkuji za rady.

 
Odpovědět 28.2.2015 12:01
Avatar
Odpovídá na Criess
Michal Štěpánek:

V jakém jazyku?
Mám to pro VB.NET, ale je jednoduché to převést na C#
Třída:

public dtVed as new DataTable

Public Sub NactiVedouci()
        dtVed.Clear()
        Dim constr As String = ConfigurationManager.ConnectionStrings("DefaultConnection").ConnectionString
        Dim dbcon As New SqlConnection(constr)
        dbcon.Open()
        Dim strVed As New SqlCommand("SELECT VedouciId, Jmeno FROM Vedouci ORDER BY Jmeno", dbcon)
        Dim daVed As New SqlDataAdapter(strVed)
        daVed.Fill(dtVed)
        dbcon.Close()
    End Sub

a ve formu pak

třída.NactiVedouci()
        vedouciComboBox.DataSource = třída.dtVed
        With vedouciListBox
            .DisplayMember = "Jmeno"
            .ValueMember = "VedouciId"
        End With
Editováno 28.2.2015 12:13
Nahoru Odpovědět 28.2.2015 12:10
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Skelag
Člen
Avatar
Odpovídá na Criess
Skelag:

Položky v ComboBoxu se mění přes

comboBox.Items.Add("Nějaký text");

a

comboBox.Items.Remove("Nějaký text");
Editováno 28.2.2015 12:19
 
Nahoru Odpovědět 28.2.2015 12:18
Avatar
Criess
Člen
Avatar
Odpovídá na Michal Štěpánek
Criess:

Ano omlouvám se, mohl bys to prosím přepsat do C#? Ja se ve VB moc nevyznám...

 
Nahoru Odpovědět 28.2.2015 13:17
Avatar
Odpovídá na Skelag
Michal Štěpánek:

Takhle je ale těžko budeš měnit za běhu programu...

Nahoru Odpovědět 28.2.2015 13:40
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na Criess
Michal Štěpánek:

V C# to zas moc ještě neumim já, ale existují různé konvertory. Podstata je ale jasná:
Vytvoříš si datatable, do ní SQL dotazem uložíš data a ve formu si tu datatable nastavíš jako zdroj dat pro tu komponentu, kterou potřebuješ, v tvém případě ComboBox.

Nahoru Odpovědět 28.2.2015 13:43
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Skelag
Člen
Avatar
Odpovídá na Michal Štěpánek
Skelag:

Proč by to nemělo fungovat? Mě to jde o_O

 
Nahoru Odpovědět 28.2.2015 13:44
Avatar
Odpovídá na Skelag
Michal Štěpánek:

Já ale neřekl, že to nebude fungovat, jen že to budeš obtížně měnit za běhu programu. Když už potřebuješ měnit data v ComboBoxu, většinou je budeš tahat z DB a pak je asi hloupost přidávat a odebírat položky "po jedné"...

Nahoru Odpovědět 28.2.2015 13:47
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Criess
Člen
Avatar
Odpovídá na Michal Štěpánek
Criess:

Tak mohl bych je tam třeba tahat z List<>, ne?

 
Nahoru Odpovědět 28.2.2015 17:26
Avatar
Odpovídá na Criess
Michal Štěpánek:

Samozřejmě. Pokud předpokládáš, že se ty položky budou měnit podle nějakých podmínek, asi budou někde uložené. Pak záleží na tom, kde. Když v nějaké DB, je jednodušší použít datatable, když v nějakém XML souboru, nebo v něčem podobném, použiješ pravděpodobně jednotlivé vkládání...

Nahoru Odpovědět 28.2.2015 18:17
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.