C # ListView realizar el movimiento del ratón y la línea elemento resaltado de doble búfer Listview

C # ListView realizar el movimiento del ratón y la línea elemento resaltado de doble búfer Listview

1, una declaración de clase ListView, cuenta el doble buffer

class ListViewBuffered : System.Windows.Forms.ListView
    {
        public ListViewBuffered()
        {
            // 开启双缓冲
            this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);

            // Enable the OnNotifyMessage event so we get a chance to filter out 
            // Windows messages before they get to the form's WndProc
            this.SetStyle(ControlStyles.EnableNotifyMessage, true);
        }
    }

2, la Listview modificada componente ha sido añadido, modificaciones: designer.cs Abiertas Winform el archivo, el tipo de componente que corresponde a desde System.Windows.Forms.ListView Listivew de nuevo diseño basado modificados ListViewBuffered, un total de 2, una Departamento para el nuevo tipo de objeto es una declaración de variable.

this.listView1 = new ProxyRedis.ListViewBuffered();

private ListViewBuffered listView1;

3, añadir un evento para realizar la función de un evento MouseMove, el otro es ItemMouseHover caso, aquí se recomiendan evento MouseMove, ya que puso de relieve ningún retraso.

private ListViewItem prItem;
private void listView1_MouseMove(object sender, MouseEventArgs e)
        {
           if (list.Items.Count <= 0)
                return;
            if (prItem != null)
            {
                prItem.BackColor = Color.White;
            }            
            prItem = list.GetItemAt(e.X, e.Y);
            if(prItem!=null)
                prItem.BackColor = Color.GreenYellow;
        }
Publicado 48 artículos originales · ganado elogios 3 · Vistas a 20000 +

Supongo que te gusta

Origin blog.csdn.net/chscomfaner/article/details/103729892
Recomendado
Clasificación