У меня есть некоторые элементы в ComboBox (WinForms с С#). Я хочу, чтобы их содержимое было статическим, чтобы пользователь не мог изменять значения внутри, когда приложение запущено. Я также не хочу, чтобы пользователь добавлял новые значения в ComboBox
Как отключить редактирование элементов в combobox для С#?
Ответ 1
Используйте свойство ComboStyle:
comboBox.DropDownStyle = ComboBoxStyle.DropDownList;
Ответ 2
Это другой метод, который я использую, потому что изменение DropDownSyle
на DropDownList
делает его трехмерным, а иногда и просто уродливым.
Вы можете предотвратить ввод пользователя, обработав событие KeyPress
для ComboBox, как это.
private void ComboBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
Ответ 3
Yow может изменить DropDownStyle в свойствах на DropDownList. Это не покажет TextBox для фильтра.
(Снимок экрана предоставлен FUSION CHA0S.)
Ответ 4
Как упоминалось выше, вы можете изменить "DropDownStyle" на "DropDownList" в свойствах комбинированного списка.
Ответ 5
Я попробовал 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()