2016-07-30 4 views
1

Ich möchte eine nicht bearbeitbare ComboBox haben, aber immer noch eine weiße Hintergrundfarbe zeigen, so dass es effektiv wie der Standard-ComboBox-Stil (DropDown) gestaltet ist. Die ComboBoxStyle.DropDownList bietet nur die standardmäßige "deaktivierte" graue Hintergrundfarbe. Setzen Sie einfach BackColor = Color.White hat keine Wirkung.Combobox DropDownList Stil mit weißem Hintergrund

Dropdownlist: DropDownList

DropDown: DropDown

+0

versuchen, die IsEditable und IsReadOnly Eigenschaften https://msdn.microsoft.com/en-us/library/system.windows.controls.combobox.isreadonly.aspx – Slai

+0

Das ist für WPF nicht WinForms, dank tho. – user3424480

Antwort

0

Sie werden mit custom drawing Ihren eigenen ComboBox erstellen müssen oder ein Drittanbieter-Steuerung wie Infragistics verwenden UltraCombo

public class MyComboBox : ComboBox 
    { 
     public MyComboBox() 
     { 
      this.SetStyle(ControlStyles.UserPaint, true); 
     } 

     protected override void OnPaint(PaintEventArgs e) 
     { 
      // Repaint here 
     } 
    } 
0

kämpfte Nachdem versucht, Das Steuerelement sah identisch mit dem DropDown ComboBox-Stil aus, den ich mit dem OnKeyPress-Ereignis übergehen musste, so dass der Benutzer von ABL eingeschränkt wurde e zum Bearbeiten des Steuerelements. Als Randnotiz würde ich auch empfehlen, das entsprechende Ereignis zu überschreiben, um zu verhindern, dass Benutzer Werte in die ComboBox einfügen (how to disable copy, Paste and delete features on a textbox using C#).

protected override void OnKeyPress(KeyPressEventArgs e) 
{ 
    e.Handled = true; 
}