web-dev-qa-db-de.com

So deaktivieren Sie die Bearbeitung von Elementen in der Combobox für c #

Ich habe einige Elemente in einer ComboBox (WinForms mit C #). Ich möchte, dass ihr Inhalt statisch ist, sodass ein Benutzer die Werte nicht ändern kann, wenn die Anwendung ausgeführt wird. Ich möchte auch nicht, dass der Benutzer der ComboBox neue Werte hinzufügt

143
Mobin

Verwenden Sie die ComboStyle-Eigenschaft:

comboBox.DropDownStyle = ComboBoxStyle.DropDownList;
273
Dan Walker

Dies ist eine andere Methode, die ich verwende, da DropDownSyle in DropDownList geändert wird, wodurch das 3D-Aussehen erzielt wird.

Sie können Benutzereingaben verhindern, indem Sie das Ereignis KeyPress der ComboBox auf diese Weise behandeln.

private void ComboBox1_KeyPress(object sender, KeyPressEventArgs e)
{
      e.Handled = true;
}
19
Isuru

Sie können den DropDownStyle in den Eigenschaften in DropDownList ändern. Das Textfeld für Filter wird nicht angezeigt.

2
Sumit Agrawal

Wie oben erwähnt, können Sie in den Eigenschaften der Combobox den "DropDownStyle" in "DropDownList" ändern.

DropDownStyle Property

1
FUSION CHA0S

Ich habe ComboBox1_KeyPress ausprobiert, aber es erlaubt das Zeichen zu löschen. Sie können auch den Befehl zum Kopieren und Einfügen verwenden. Mein DropDownStyle ist auf DropDownList gesetzt, kann aber trotzdem nicht verwendet werden. Ich habe also unten Schritt gemacht, um die Bearbeitung von Combobox-Texten zu vermeiden. 

  • Unterhalb des Codes wird die Lösch- und Rücktaste gedrückt. Deaktiviert auch die Kombination mit der Steuertaste (z. B. Strg + C oder Strg + X)

     Private Sub CmbxInType_KeyDown(sender As Object, e As KeyEventArgs) Handles CmbxInType.KeyDown
        If e.KeyCode = Keys.Delete Or e.KeyCode = Keys.Back Then 
            e.SuppressKeyPress = True
        End If
    
        If Not (e.Control AndAlso e.KeyCode = Keys.C) Then
            e.SuppressKeyPress = True
        End If
    End Sub
    
  • Zum Laden von Formularen verwenden Sie unterhalb der Zeile den Rechtsklick auf die Combobox Steuerung, um das Ausschneiden/Einfügen per Mausklick zu vermeiden.

    CmbxInType.ContextMenu = new ContextMenu()
    
0
J Sushil