Ответы:
Используйте свойство ComboStyle:
comboBox.DropDownStyle = ComboBoxStyle.DropDownList;
combo.Properties.TextEditStyle = DisableTextEditor
Это еще один метод я использую , потому что изменения DropDownSyle
в DropDownList
он выглядит 3D , а иногда его просто уродливой.
Вы можете предотвратить ввод данных пользователем, обрабатывая KeyPress
событие ComboBox следующим образом.
private void ComboBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
Paste
тоже. Я понятия не имею, как сейчас.
Paste
вам нужно создать поддельное пустое контекстное меню и назначить его ComboBox.
Yow может изменить DropDownStyle в свойствах на DropDownList. Это не покажет TextBox для фильтра.
(Скриншот предоставлен FUSION CHA0S .)
Я пробовал ComboBox1_KeyPress, но он позволяет удалить символ, и вы также можете использовать команду копирования и вставки. Мой DropDownStyle установлен в DropDownList, но все еще бесполезен. Поэтому я сделал ниже шаг, чтобы избежать редактирования текста в выпадающем списке.
Ниже код обрабатывает клавишу удаления и возврата. А также отключает комбинацию с управляющей клавишей (например, ctr + C или 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
При загрузке формы используйте строку ниже, чтобы отключить щелчок правой кнопкой мыши на элементе управления списком, чтобы избежать вырезания / вставки с помощью щелчка мыши.
CmbxInType.ContextMenu = new ContextMenu()