如何确定用户单击了DataGridView,但没有单击单元格
本文关键字:单击 单元格 DataGridView 何确定 用户 | 更新日期: 2023-09-27 18:25:52
当用户在DataGridView
的空白区域中单击时,我希望提示用户将新元素输入到数据绑定集合中。我如何才能发现用户是否在DataGridView
(默认为灰色区域)内部单击,而不是在Column
/Row
/Cell
中单击?
您可以使用MouseClick
事件并对其进行命中测试。
private void dgv_MouseClick(object sender, MouseEventArgs e)
{
var ht = dgv.HitTest(e.X, e.Y);
if (ht.Type == DataGridViewHitTestType.None)
{
//clicked on grey area
}
}
要确定用户何时单击了DataGridView的空白部分,您必须处理其MouseUp event
。
在这种情况下,您可以点击测试点击位置,并注意它是否指示HitTestInfo.Nowhere
。
例如:
private void myDataGridView_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
//'#See if the left mouse button was clicked
if (e.Button == MouseButtons.Left) {
//'#Check the HitTest information for this click location
if (myDataGridView.HitTest(e.X, e.Y) == HitTestInfo.Nowhere) {
// Do what you want
}
}
}