【问题标题】:Disable right arrow key in the ComboBox control禁用 ComboBox 控件中的右箭头键
【发布时间】:2011-10-22 13:19:48
【问题描述】:

当我在 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 的值发生了变化。

我查看了此页面上描述的 2 种方法: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;
  }
}

谢谢你的回答

【问题讨论】:

    标签: c# winforms compact-framework


    【解决方案1】:

    这是老派,但效果很好。

    [免责声明:我现在(在家)没有安装 VS2008,所以我无法验证 ComboBox 项目 SelectedIndex 是否是 Compact Framework 的一部分。如果不是,您必须找到一些其他技术来解析您的 ComboBox 项目。]

    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!
    }
    

    【讨论】:

    • 您的答案很好,但我找到了另一个好的解决方案,我会选择另一个。谢谢jp2code!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    相关资源
    最近更新 更多