我在使用C#编写的WinForms应用程序中有一个ComboBox控件。 我希望其中的元素内容是静态的,这样用户在运行应用程序时就不能更改里面的值。 我也不想让用户添加新值到ComboBox中。
comboBox.DropDownStyle = ComboBoxStyle.DropDownList;
这是我使用的另一种方法,因为将DropDownStyle
更改为DropDownList
使其看起来3D,并且有时它只是很丑。
您可以通过处理ComboBox的KeyPress
事件来防止用户输入,像这样。
private void ComboBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
我尝试了ComboBox1_KeyPress,但它允许删除字符,而且您还可以使用复制粘贴命令。我的DropDownStyle设置为DropDownList,但仍然没有用。因此,我采取了以下步骤来避免编辑组合框文本。
下面的代码处理删除和退格键,并禁用控制键的组合(例如 ctr + C 或 ctr + X)。 在表单加载中,使用以下行禁用组合框上的右键单击控件以避免通过鼠标单击剪切/粘贴操作。 Private Sub CmbxInType_KeyDown(sender As Object, e As KeyEventArgs) Handles CmbxInType.KeyDown
如果 e.KeyCode = Keys.Delete 或 e.KeyCode = Keys.Back Then
e.SuppressKeyPress = True
End If
如果不是 (e.Control AndAlso e.KeyCode = Keys.C) Then
e.SuppressKeyPress = True
End If
End Sub
CmbxInType.ContextMenu = new ContextMenu()
combo.Properties.TextEditStyle = DisableTextEditor
来禁用组合框的文本编辑功能。 - Keysharpener