如何禁用编辑组合框中的元素 c # ?

我在 ComboBox (带 C # 的 WinForms)中有一些元素。我希望它们的内容是静态的,这样当应用程序运行时,用户就不能更改其中的值。我也不希望用户向 ComboBox 添加新值

170880 次浏览

使用 ComboStyle 属性:

comboBox.DropDownStyle = ComboBoxStyle.DropDownList;

这是我使用的另一种方法,因为将 DropDownSyle改为 DropDownList会使它看起来像3D 的,有时候它只是简单的丑陋。

您可以通过像下面这样处理 ComboBox 的 KeyPress事件来防止用户输入。

private void ComboBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}

您可以将属性中的 DropDownStyle 更改为 DropDownList。这将不会显示用于筛选的 TextBox。

DropDownStyle Property
(屏幕截图由 融合混乱提供。)

我试过 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
    
  • In form load use below line to disable right click on combobox control to avoid cut/paste via mouse click.

    CmbxInType.ContextMenu = new ContextMenu()