我有两个DataGridView
个事件。我有一个问题,当我双击一个单元格时,两个事件,即cell click
和cell double click
事件都被调用。请告诉我为什么会出现此问题。
由于
答案 0 :(得分:1)
它有Windows问题。据我所知,他们没有添加任何特殊处理它。
你可以处理这个 -
您设置时间的时间应该等于系统的双击时间(用户可以在控制面板中指定)。它可以从System.Windows.Forms.SystemInformation.DoubleClickTime
获得。
查看此MSDN链接 - here
答案 1 :(得分:1)
显然,通过设置DataGridView的属性,无法做到这一点。所以你可以使用Timer来计算是否有任何双击,如果不是你在单击事件处理程序中做的任何事情,请检查代码:
System.Windows.Forms.Timer t;
public Form1()
{
InitializeComponent();
t = new System.Windows.Forms.Timer();
t.Interval = SystemInformation.DoubleClickTime - 1;
t.Tick += new EventHandler(t_Tick);
}
void t_Tick(object sender, EventArgs e)
{
t.Stop();
DataGridViewCellEventArgs dgvcea = (DataGridViewCellEventArgs)t.Tag;
MessageBox.Show("Single");
//do whatever you do in single click
}
private void dataGridView1_CellClick_1(object sender, DataGridViewCellEventArgs e)
{
t.Tag = e;
t.Start();
}
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
t.Stop();
MessageBox.Show("Double");
//do whatever you do in double click
}
答案 2 :(得分:1)
您可以使用网格的RowHeaderMouseClick事件
private void dgv_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
}