it-swarm.com.de

Wie man ein Kontrollkästchen in der Combobox in c # hinzufügt

Ich möchte ein Kontrollkästchen in der ComboBox in C # hinzufügen. Mein Ziel ist es, dass der Benutzer mehrere Werte aus einer ComboBox auswählen kann (Alle markieren und Alle entfernen).

Bitte helfen Sie

10
Vyas Dev

Sie müssen das ComboBox-Steuerelement erweitern, indem Sie Ihre eigene Rendering-Strategie angeben und "manuell" eine CheckBox hinzufügen.

Dieses Open Source Projekt ist einsatzbereit:

http://www.codeproject.com/KB/combobox/CheckComboBox.aspxhttp://www.codeproject.com/KB/combobox/extending_combobox.aspx

7
Larry

IMHO, es ist eine falsche Verwendung der ComboBox-Steuerung, da der Benutzer keine Möglichkeit hat, seine Auswahl zu sehen. Für die Mehrfachauswahl empfehle ich Ihnen CheckedListBox-Steuerelement Link zu MSDN

3
Allender

Es gibt eine ASP.NET-Open-Source-Steuerung unter http://dropdowncheckboxes.codeplex.com/ , die ich verwendet habe und mit der ich sehr zufrieden bin. Es gibt auch eine WinForms-Open-Source-Steuerung unter http://www.codeproject.com/KB/combobox/extending_combobox.aspx , die nicht ganz so stark aussieht, aber vielleicht könnte jemand das Beste aus beiden kombinieren. Wenn es gut implementiert ist, ist es eine großartige Ergänzung für Ihr Toolkit. Die obigen 2 Implementierungen zeigen alle ausgewählten Elemente und geben Ihnen eine Reihe von zugehörigen Kontrollkästchen in einem reduzierten Bereich und mit hervorragender Gruppierung. Mein Zusatz zur ASP.NET-Version bestand darin, einer Liste überprüfter Dateien zu erlauben, nur Dateinamen anstelle vollständiger Pfade zu verwenden, wenn dies zu lang wird. Siehe obigen Link für den vollständigen Code. Im Folgenden ist nur mein Zusatz aufgeführt, der in Ihrem Postback-Handler anstelle von UpdateSelection aufgerufen wird:

// Update the caption assuming that the items are files 
// If the caption is too long, eliminate paths from file names 
public void UpdateSelectionFiles(int maxChars) { 
  StringBuilder full = new StringBuilder(); 
  StringBuilder shorter = new StringBuilder(); 
  foreach (ListItem item in Items) { 
    if (item.Selected) { 
      full.AppendFormat("{0}; ", item.Text);
      shorter.AppendFormat("{0}; ", new FileInfo(item.Text).Name); 
    } 
  } 
  if (full.Length == 0) Texts.SelectBoxCaption = "Select..."; 
  else if (full.Length <= maxChars) Texts.SelectBoxCaption = full.ToString(); 
  else Texts.SelectBoxCaption = shorter.ToString(); 
} 
0
Mick Bruno