IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Criess
Člen
Avatar
Criess:28.2.2015 12:01

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:28.2.2015 12:10

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:28.2.2015 12:18

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:28.2.2015 13:17

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:28.2.2015 13:40

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:28.2.2015 13:43

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:28.2.2015 13:44

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:28.2.2015 13:47

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:28.2.2015 17:26

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:28.2.2015 18:17

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.