Отключить стрелку вправо в элементе управления ComboBox - PullRequest
3 голосов
/ 22 октября 2011

Я хотел бы отключить стрелку вправо, когда я использую элемент управления ComboBox в Compact Framework 3.5.

Я уже пробовал это:

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

спасибо за ваш ответ

1 Ответ

2 голосов
/ 23 октября 2011

Это старая школа, но работает очень хорошо.

[ Отказ от ответственности: У меня не установлено 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!
}
...