禁用组合框控件中的右箭头键

本文关键字:控件 禁用组合 | 更新日期: 2023-09-27 18:11:57

当我在Compact Framework 3.5中使用ComboBox控件时,我想禁用右箭头。

我已经试过了:

private void Combo_KeyDown(object sender, KeyEventArgs e)
{
  if ((e.KeyCode == System.Windows.Forms.Keys.Right))
  {
    TxtPass.Focus();
    return;
  }
}

,但ComboBox值变化。

我看了这个页面上描述的两种方法:http://social.msdn.microsoft.com/forums/en-us/csharpgeneral/thread/F8F2FE7D-A908-4AAF-BD5C-627529BB9805

但是这两种方法不适用于紧凑框架。(属性不存在).

有人有好主意吗?


编辑

我刚刚找到了解决方案

private void Combo_KeyDown(object sender, KeyEventArgs e)
{
  if ((e.KeyCode == System.Windows.Forms.Keys.Right))
  {
    TxtPass.Focus();
    e.Handled = true;
    return;
  }
}

谢谢你的回答

禁用组合框控件中的右箭头键

这是老派的,但效果很好。

[免责声明:我没有VS2008安装在我现在(在家里),所以我不能验证ComboBox项目SelectedIndex是紧凑框架的一部分。如果不是,你必须找到一些其他的技术来解析你的ComboBox项目。[/p>

int comboIndex; // Add 1 variable
private void Combo_KeyDown(object sender, KeyEventArgs e)
{
  if (comboIndex != comboBox1.SelectedIndex)
  {
    if ((e.KeyCode == System.Windows.Forms.Keys.Right))
    {
      TxtPass.Focus();
      comboBox1.SelectedIndex = comboIndex;
      return;
    }
  }
  comboIndex = comboBox1.SelectedIndex; // Don't forget to set this!
}