C # ListView réaliser le mouvement de la souris et la ligne d'élément en surbrillance de Listview double tampon

C # ListView réaliser le mouvement de la souris et la ligne d'élément en surbrillance de Listview double tampon

1, une déclaration de classe ListView, compte double mise en mémoire tampon

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, le composant modifié Listview a été ajouté, les modifications: Ouvert designer.cs winform le fichier, le type correspond au composant de System.Windows.Forms.ListView Listivew nouvellement modifié sur la base conçus en ListViewBuffered, un total de 2, un Département pour le nouveau type d'objet est une déclaration variable.

this.listView1 = new ProxyRedis.ListViewBuffered();

private ListViewBuffered listView1;

3, ajouter un événement pour réaliser la fonction d'un événement MouseMove, l'autre est ItemMouseHover événement, ici sont recommandés événement MouseMove, car il a mis en évidence aucun retard.

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;
        }
Publié 48 articles originaux · louange gagné 3 · vues 20000 +

Je suppose que tu aimes

Origine blog.csdn.net/chscomfaner/article/details/103729892
conseillé
Classement