How to change listview selected row backcolor even when focus on another control?

前端 未结 6 799
囚心锁ツ
囚心锁ツ 2020-11-28 13:18

I have a program which uses a barcode scanner as input device so that means I need to keep the focus on a text box.

The program has a listview control and I select o

6条回答
  •  没有蜡笔的小新
    2020-11-28 13:55

    On SelectedIndexChanged:

        private void lBxDostepneOpcje_SelectedIndexChanged(object sender, EventArgs e)
        {
    
            ListViewItem item = lBxDostepneOpcje.FocusedItem as ListViewItem;
            ListView.SelectedIndexCollection lista = lBxDostepneOpcje.SelectedIndices;
            foreach (Int32 i in lista)
            {
                lBxDostepneOpcje.Items[i].BackColor = Color.White;
            }
            if (item != null)
            {
                item.Selected = false;
                if (item.Index == 0)
                {
                }
                else
                {
                    lBxDostepneOpcje.Items[item.Index-1].BackColor = Color.White;
                }
                if (lBxDostepneOpcje.Items[item.Index].Focused == true)
                {
                    lBxDostepneOpcje.Items[item.Index].BackColor = Color.LightGreen;
                    if (item.Index < lBxDostepneOpcje.Items.Count-1)
                    {
                        lBxDostepneOpcje.Items[item.Index + 1].BackColor = Color.White;
                    }
                }
                else if (lBxDostepneOpcje.Items[item.Index].Focused == false)
                {
                    lBxDostepneOpcje.Items[item.Index].BackColor = Color.Blue;
                }
            }
    
        }
    

提交回复
热议问题