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;
}
直接复制就能用^_^
[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;
}
直接复制就能用^_^
相关文章推荐
- c#listview 列随lietview大小自动平分适应listview大小
- c# ActiveX 手动申请,释放资源
- C# 拖拽下载实现
- C# 右下角弹出窗口
- c#winform禁用关闭按钮的方法
- C# time.ToString("yyyyMMddHH") "yyyyMMdd"TO--DateTime
- C#查看Windows系统Task Scheduler内任务的运行状态
- C#中构造函数和析构函数用法实例详解
- 『片段』C# DateTime 时间相减 和 时区的关系
- C# 几种数据类型转换方式
- 过滤DataTable数据的Select()方法
- C# DataTable常用方法总结
- C#使用二叉树算法设计一个无限分级的树表
- 11 在C#中写文件
- C#中picturebox上的Label如何实现透明
- 浅谈如何在C#Winform程序中正确使用登录窗体
- C# 其他
- C# textbox控件应用
- C#/WPF 计算字串的真实长度,调整控件的宽度
- C# list 去重