如果你的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); } }