Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Disable right arrow key in the ComboBox control

I'd like to disable the right arrow when I'm using the ComboBox control in the Compact Framework 3.5.

I already tried that :

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

but the ComboBox value change.

I looked the 2 methods described on this page : http://social.msdn.microsoft.com/forums/en-us/csharpgeneral/thread/F8F2FE7D-A908-4AAF-BD5C-627529BB9805

But the 2 methods doesn't work for the compact framework. (the properties don't exist).

Does someone has a good idea?

regards


Edit

I just find the solution

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

thank you for your answer

like image 800
P. Sohm Avatar asked Nov 05 '22 12:11

P. Sohm


1 Answers

This is old school, but works very well.

[Disclaimer: I do not have VS2008 installed where I am now (at home), so I can not verify that the ComboBox item SelectedIndex is part of the Compact Framework. If it is not, you'd have to find some other technique to parse through your ComboBox items.]

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!
}
like image 137
jp2code Avatar answered Nov 13 '22 17:11

jp2code