禁用c#中ComboBox中的右键菜单

时间:2016-08-23 02:15:18

标签: c# .net vb.net

我的最终目标是让Combobox不可编辑。目前,当用户进行任何选择时,ComboBox会显示选择并突出显示,因此用户可以右键单击并剪切和删除显示的文本。我添加了keyDown方法,它可以阻止用户执行ctrl + c,ctrl + v和delete等命令。但是用户仍然可以使用右键单击“剪切”,“复制”和“粘贴”来修改突出显示的文本。如何阻止用户修改当前选择?

1 个答案:

答案 0 :(得分:0)

  

最终目标是使Combobox不可编辑。

您可以订阅KeyDown事件,并为SuppressKeyPress以外的所有其他操作设置Ctrl+c为true,并创建新的ContextMenu以禁用所有默认行为。

 comboBox2.KeyDown += comboBox2_KeyDown;
 comboBox2.ContextMenu = new ContextMenu();   //disable right click

 void comboBox2_KeyDown(object sender, KeyEventArgs e)
 {
      if (!(e.Control && e.KeyCode == Keys.C))
      {
           e.SuppressKeyPress = true;
      }
 }