如果你的ListView为Details模式,并且带有checkboxes,而你又不想在双击时改变CheckBox的状态,你可以从ListView派生,并重载WndProc方法。下面就是方法:
public class MyListView : ListView
{
private const int WM_LBUTTONDBLCLK = 0x0203;
public MyListView():base()
{
}
protected override void WndProc(ref Message m)
{
if(m.Msg == WM_LBUTTONDBLCLK)
{
Point p = PointToClient(new Point(Cursor.Position.X, Cursor.Position.Y));
ListViewItem lvi = GetItemAt(p.X, p.Y);
if(lvi != null)
lvi.Selected = true;
OnDoubleClick(new EventArgs());
}
else
base.WndProc (ref m);
}
}