您的位置:首页 > 编程语言 > C#

c#winform自定义listview,解决listview闪缩问题,添加listview单元格单击事件。

2016-06-23 15:58 537 查看
//代码简单就不解释了

 [Description("解决listview闪烁问题,和添加listview单元格单击事件")]

    public partial class HListView : ListView

    {

        public HListView()

        {

            InitializeComponent();

            //设置双缓冲解决listview闪烁问题

            SetStyle(ControlStyles.DoubleBuffer |

                     ControlStyles.OptimizedDoubleBuffer |

                     ControlStyles.AllPaintingInWmPaint, true);

            UpdateStyles();

        }

        //实现listview的MouseDown事件

        private void DoubleBufferListView_MouseDown(object sender, MouseEventArgs e)

        {

            Point tmpPoint = this.PointToClient(Cursor.Position);

            ListViewItem.ListViewSubItem subitem = this.HitTest(tmpPoint).SubItem;

            ListViewItem item = this.HitTest(tmpPoint).Item;

            if (subitem != null)

            {

                OnCellClickEvent eEvent=new OnCellClickEvent();

                eEvent.item = item;

                eEvent.subitem = subitem;

                if (OnCellClick!=null)

                {

                    OnCellClick(sender, eEvent);

                }

            }

        }

        //添加单元格委托和单据事件

        public delegate void LVOnCellClick(object sender, OnCellClickEvent e);

        [Description("这个是单元格单击事件")]

        public event LVOnCellClick OnCellClick; //OnCellClick会在属性窗口显示 

    }

    public class OnCellClickEvent : EventArgs

    {

        public ListViewItem item;

        public ListViewItem.ListViewSubItem subitem; 
    }

直接复制就能用^_^
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息