2011-10-22 83 views
2

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

我已经试过了:

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

但组合框的值的变化。

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

但2种方法紧凑架构不起作用。 (这些属性不存在)。

有人有一个好主意吗?

问候


编辑

我只是找到解决方案

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

感谢您的回答

回答

2

这是老同学,但工作得很好。

[免责声明:我没有安装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! 
} 
+0

你的答案的工作很好,但我发现了另外一个很好的解决方案,我会采取其他的。谢谢jp2code! –

+0

Thanks.It也适用于我。 –