private void ViewHtlb_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left && e.Clicks == 2) // 判断是否是用鼠标双击 { DevExpress.XtraGrid.Views.Grid.ViewInfo.GridHitInfo ghi = ViewHtlb.CalcHitInfo(new Point(e.X, e.Y)); if (ghi.InRow) // 判断光标是否在行内 { MessageBox.Show("已经双击!"); } } }
增加改方法的位置:
那么该方法与
private void grid1_DoubleClick(object sender, EventArgs e)有什么区别呢?
grid1_DoubleClick(object sender, EventArgs e)函数会捕获整个grid的双击事件而不仅仅是双击列表行事件,比如:你双击表头、列表展示数据的下方的空白部分都会引发grid1_DoubleClick(object sender, EventArgs e)函数,而ViewHtlb_MouseDown(object sender, MouseEventArgs e)函数此时不会被激活。