Как изменить цвет фона выбранной строки списка, даже если сосредоточиться на другом элементе управления?

У меня есть программа, которая использует сканер штрих-кода в качестве устройства ввода, поэтому мне нужно сосредоточить внимание на текстовом поле.

В программе есть элемент управления списком, и я выбираю один из элементов программно, когда появляется определенный штрих-код сканируется. Я установил цвет фона строки следующим образом:

listviewitem.BackColor = Color.LightSteelBlue;

Вещи, которые я пробовал:

  • listview.HideSelection установлен на false
  • вызов listview.Focus () после установки цвета
  • listviewitem.Focused установлено в значение true
  • вызов listview.Invalidate
  • вызов listview.Update ()
  • вызов listview.Refresh ()
  • различные комбинации из вышеупомянутого

Я также использовал указанные выше комбинации в таймере, чтобы они вызывались в другом потоке, но все равно безуспешно.

Есть идеи?

Подробнее:

  • Ключ здесь - фокус управления.
  • Фокус всегда находится в текстовом поле.

  • компьютер не имеет клавиатуры или мыши, только считыватель штрих-кода.

У меня есть этот код, чтобы сохранить фокус в текстовом поле:

private void txtBarcode_Leave(object sender, EventArgs e)
{
   this.txtBarcode.Focus();
}

Вам необходимо иметь текстовое поле добавьте этот код, чтобы смоделировать мою проблему.

26
задан Cody Gray 4 March 2011 в 00:25
поделиться