Відповіді:
Використовуйте властивість 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()