Yanıtlar:
ComboStyle özelliğini kullanın:
comboBox.DropDownStyle = ComboBoxStyle.DropDownList;
combo.Properties.TextEditStyle = DisableTextEditor
Bu değişen çünkü Kullandığım başka yöntemdir DropDownSyle
için DropDownList
bazen 3D ve onun sadece düz çirkin görünmesini sağlar.
KeyPress
ComboBox olayını bu şekilde işleyerek kullanıcı girişini önleyebilirsiniz .
private void ComboBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
Paste
. Şu anda nasıl olduğu hakkında hiçbir fikrim yok.
Paste
için sahte boş bağlam menüsü oluşturmanız ve ComboBox'a atamanız gerekir.
Yow, özelliklerde DropDownStyle öğesini DropDownList olarak değiştirebilir. Bu filtre için TextBox'ı göstermez.
(Ekran görüntüsü FUSION CHA0S tarafından sağlanmıştır .)
ComboBox1_KeyPress'i denedim ama karakteri silmeye izin veriyor ve kopyala yapıştır komutunu da kullanabilirsiniz. DropDownStyle'ım DropDownList olarak ayarlanmış, ancak yine de faydası yok. Bu yüzden combobox metin düzenlemesinden kaçınmak için aşağıdaki adımı attım.
Aşağıdaki kod silme ve geri silme tuşlarını işler. Ayrıca kontrol tuşuyla (örn. Ctr + C veya ctr + X) kombinasyonu devre dışı bırakır
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
Form yükünde, fare tıklaması ile kes / yapıştırmayı önlemek için combobox kontrolüne sağ tıklamayı devre dışı bırakmak için aşağıdaki satırı kullanın.
CmbxInType.ContextMenu = new ContextMenu()