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
Verwenden Sie die ComboStyle-Eigenschaft:
comboBox.DropDownStyle = ComboBoxStyle.DropDownList;
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;
}
Sie können den DropDownStyle in den Eigenschaften in DropDownList ändern. Das Textfeld für Filter wird nicht angezeigt.
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()