Odpowiedzi:
Użyj właściwości ComboStyle:
comboBox.DropDownStyle = ComboBoxStyle.DropDownList;
combo.Properties.TextEditStyle = DisableTextEditor
Jest to kolejna metoda, której używam, ponieważ zmiana DropDownSyle
na DropDownList
sprawia, że wygląda 3D, a czasami jest po prostu brzydka.
Możesz zapobiec wprowadzaniu danych przez użytkownika, obsługując KeyPress
zdarzenie ComboBox w ten sposób.
private void ComboBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
Paste
. Nie mam pojęcia, jak teraz.
Paste
, musisz utworzyć fałszywe puste menu kontekstowe i przypisać je do ComboBox.
Yow może zmienić DropDownStyle we właściwościach na DropDownList. To nie pokaże TextBox dla filtra.
(Zrzut ekranu udostępniony przez FUSION CHA0S .)
Próbowałem ComboBox1_KeyPress, ale pozwala usunąć znak i możesz także użyć polecenia kopiuj wklej. Mój DropDownStyle jest ustawiony na DropDownList, ale nadal nie jest używany. Zrobiłem więc poniższy krok, aby uniknąć edycji tekstu combobox.
Poniższy kod obsługuje klawisz Delete i Backspace. A także wyłącza kombinację z klawiszem sterującym (np. Ctr + C lub ctr + 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
Podczas ładowania formularza użyj poniższej linii, aby wyłączyć prawy przycisk myszy na kontrolce combobox, aby uniknąć wycinania / wklejania kliknięciem myszy.
CmbxInType.ContextMenu = new ContextMenu()