2012-02-17 3 views
37

Ho alcune caselle combinate configurate come elenchi a discesa e l'utente può selezionarne un numero. Ho anche un pulsante Clear che dovrebbe cancellare il testo dalle caselle combinate ma non riesco a ottenerlo. Ho provato:Come si cancella una casella combinata?

//doesn't work 
cboxHour.Text = ""; 

e

//doesn't work 
cboxHour.ResetText(); 

Questo sembra che dovrebbe essere così semplice, ma io non sto solo ottenerlo.

+0

possibile duplicato di [Come cancellare il contenuto della casella combinata in vb.net] (http://stackoverflow.com/questions/2458928/how-to-clear-combo-box-contents-in-vb- netto) –

risposta

75

Hai provato cboxHour.Items.Clear()?

+1

Questo è il vincitore. Ti segnerò come risposta scelta quando posso. –

+4

Se il tuo comboBox è limitato, imposta comboBoxName.DataSource = null prima di Clearing –

+0

Questo è probabilmente insufficiente. È probabile che sia richiesta anche la chiamata a ResetText() come risposta da @beanmf di seguito. –

49

Se si desidera solo per cancellare la selezione corrente, ma lasciare tutti gli elementi della lista, è possibile utilizzare:

cboHour.SelectedIndex = -1 
+4

Quando lo utilizzo, viene attivato l'eventoIndexChanged selezionato. Nell'evento SelectedIndexChanged, ritorno dall'evento se SelectedIndex è -1. –

3
cboxHour.Items.Clear(); 

questo funziona

+1

Puoi espandere un po 'la tua risposta? È fantastico se puoi fornire un po 'di contesto alla tua risposta. –

+0

Espandi cosa? È così semplice cancellare una casella combinata. – Denny

10

È possibile utilizzare

Cbo.Items.Clear(); 

o

Cbo.DataSource = null; 

se si ha un legame su di esso.

+0

Più voto per considerare DataSource. – Aki

0

Casella combinata, DropDown hanno tutti la stessa logica per cancellare/rimuovere tutti gli elementi da loro ed è come di seguito.

//For checkbox list 
cblTest.Items.Clear(); 

//For drop down list 
ddlTest.Items.Clear(); 
16

Quando comboBox non è associato ai dati, ho trovato ho bisogno di entrambi: Clear() rimuove gli articoli, ma ancora lascia il testo del SelectedItem, mentre ResetText() rimuove quel testo. VS2008.

Cbo.Items.Clear(); 
Cbo.ResetText(); 
+0

concordato sopra. Stavo avendo lo stesso problema in VS2013, dove il 4 chiama Items.Clear(), SelectedIndex = -1, SelectedText = string.empty e SelectedText = string.empty era insufficiente. Items.Clear() seguito da ResetText() ha fatto il trucco. –

2

Se è stato applicato origine dati per combobox, allora non essere cancellati come cmb.Items.Clear().

Per questo è necessario assegnare l'origine dati null alla casella combinata.

cmb.DataSource = null; 
cmb.Items.Clear(); 
-1

miniera ha lavorato con:

ComboBox.removeAllItems(); 

Se non legge molto bene la sua, rimuovere tutti gli elementi.

0
private void Resetbtn_Click(object sender, EventArgs e) 
{  
    comboBox1.Items.Clear(); // it will clear a combobox 

    comboBox1.Items.Add("Student"); //then add combobox elements again. 
    comboBox1.Items.Add("Staff"); 
} 
4

risposta per la tua domanda è:

metroComboBox1.SelectedItem = null; 
anycomboBox1.SelectedItem=null; 
+0

combox.items.clear() elimina gli elementi dall'elenco mentre si imposta l'elemento selezionato su null cancella i dati selezionati. eccellente. Grazie. – kakkarot

0

In WPF Si può provare questo codice

cbHours.Items.Clear();

0

ho appena cambiato il testo della casella combinata, in questo modo:

Combobox.Text = "Select..."; 
+1

Cambia ciò che è nella porzione di testo e non cancella la casella combinata come richiesto. La tua risposta presuppone che "Seleziona ..." fosse l'impostazione predefinita. Inoltre, non si dice dopo averlo fatto se ha risolto il problema – Fabulous

0

si può provare l'opzione di seguito per cancellare il testo selezionato e tutti gli elementi dalla casella combinata.

comboBox1.SelectedIndex = -1; 
comboBox1.Items.Clear();