Фокус сбрасывается на ListView
из-за порядка запуска событий.
- MouseDown - выбирает элемент в виде списка.
- ItemSelectionChanged - Звонки
listView1_ItemSelectionChanged
.
- MouseUp - Если курсор все еще находится над
listView1
, это устанавливает фокус на представление списка.
Отключение элемента управления будет работать, но при нажатии на элемент добавляется «мерцание». В противном случае вы можете отследить выбранный элемент на MouseDown
и MouseUp
/ MoustLeave
и соответственно установить фокус.
private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
{
if (e.IsSelected)
{
if (e.Item.Text == "1")
textBox1.Focus();
else
textBox2.Focus();
}
listView1.Enabled = false;
}
private void listView1_MouseUp(object sender, MouseEventArgs e)
{
listView1.Enabled = true;
}
private void listView1_MouseLeave(object sender, EventArgs e)
{
listView1.Enabled = true;
}
Примечание: нужно ли вам использовать ListView
? Сделал быстрый тест на моем конце и ListBox
ведет себя так, как вы хотите, без каких-либо взломов.