c#如何改变listview item背景颜色?
问题补充:private void listView1_MouseHover(object sender, EventArgs e)
        {        }当有事件mouse经过的时候,然后如何来改变他的item的backgroud.

解决方案 »

  1.   

    鼠标经过没有做过,下面是改变已选择项背景色的代码        private void  ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
            {
                if (e.IsSelected == true)
                {
                    foreach (ListViewItem.ListViewSubItem lvi in e.Item.SubItems)
                    {
                        lvi.BackColor = Color.Silver;
                    }
                }
                else
                {
                    foreach (ListViewItem.ListViewSubItem lvi in e.Item.SubItems)
                    {
                        lvi.BackColor = Color.White;
                    }
                }
            }
      

  2.   


    listView1.Items[0].BackColor = Color.Red
      

  3.   

    长时间悬停时原本就不会触发MouseHover
    protected   override   void   OnMouseHover(EventArgs   e) 

    }
    void listView1_LostFocus(object sender, EventArgs e)
            {
                foreach (ListViewItem item in listView1.SelectedItems)
                {
                    item.Tag = item.BackColor;
                    item.BackColor = Color.YellowGreen;
                }
            }
      

  4.   

    提供一个低效的办法:
     private void listView1_MouseMove(object sender, MouseEventArgs e)
            {
                           
                ListViewItem item = this.listView1.GetItemAt(e.X, e.Y);
                if (item != null)
                {
                    foreach (ListViewItem i in this.listView1.Items)
                    {
                        if (i == item)
                            i.BackColor = Color.Red;
                        else
                            i.BackColor = Color.White;
                    }
                }
                else
                {
                    foreach (ListViewItem i in this.listView1.Items)
                        i.BackColor = Color.White;
                   
                }
            }
      

  5.   


      private void listView1_ItemMouseHover(object sender, ListViewItemMouseHoverEventArgs e)
            {
                e.Item.BackColor = Color.Red;
            }    
      

  6.   

    怎么很多人 没注意到这个事件的。listView1_ItemMouseHover
      

  7.   

    主要是很少办这种无聊的事.
    如果有非常多的Item的话,怎么操作也是非常低效的.因为在改变一个项的颜色时,必须修改其他项的颜色.