[英]How to disable editing of elements in combobox for c#?
我在ComboBox(带有C#的WinForms)中有一些元素。 我希望它们的内容是静态的,以便用户在运行应用程序时无法更改内部的值。 我也不希望用户向ComboBox添加新值
使用ComboStyle属性:
comboBox.DropDownStyle = ComboBoxStyle.DropDownList;
这是我使用的另一种方法,因为将DropDownSyle
更改为DropDownList
会使它看起来像3D,有时看起来很丑陋。
您可以通过像这样处理ComboBox的KeyPress
事件来阻止用户输入。
private void ComboBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
现在,可以将属性中的DropDownStyle更改为DropDownList。 这不会显示用于过滤器的文本框。
(屏幕截图由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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.