DataGridView点击空白处和失去焦点后取消选择和关闭默认选择第一行C#Winform
2021-05-01 00:27
标签:svi 红色 open dex ble getc orm .com ima 默认选择第一行,可以通过窗体的Load事件中调用Datagridview的ClearSelection来取消选择 也可以设置 Datagridview的CurrentCell = null; 还可以将已经选中的行的 dgv.Row[0].Selected=false; 那么如何让用户点击如图箭头所指区域 就取消选择呢? 需要在DataGridView的MouseDown或者MouseClick事件内处理 DataGridView dgv = sender as DataGridView; DataGridView点击空白处和失去焦点后取消选择和关闭默认选择第一行C#Winform 标签:svi 红色 open dex ble getc orm .com ima 原文地址:http://www.cnblogs.com/afterwards/p/7794559.html
DataGridViewRow clickedRow = GetClickedRow(dgv, e.Y);
if (clickedRow == null)
{
dgv.ClearSelection();
}GetClickedRow的实现如下
public DataGridViewRow GetClickedRow(DataGridView dgv, int mouseY)
{
if (dgv.FirstDisplayedScrollingRowIndex 0)
{
return null;
}
if (dgv.ColumnHeadersVisible == true && mouseY dgv.ColumnHeadersHeight)
{
return null;
}
int index = dgv.FirstDisplayedScrollingRowIndex;
int displayedCount = dgv.DisplayedRowCount(true);
for (int i = 1; i displayedCount; )
{
if (dgv.Rows[index].Visible == true)
{
Rectangle rect = dgv.GetRowDisplayRectangle(index, true);
if (rect.Top rect.Bottom)
{
return dgv.Rows[index];
}
i++;
}
index++;
}
return null;
}
这样做好后 点击红色方框内的区域,就会取消选中的行了
如何在控件失去焦点后(比如去点击别的DataGridView的时候) 当前这个控件失去焦点 取消选择private void dgtWaybillAccountDetialDgv_Leave(object sender, EventArgs e)
{
DataGridView dgv = sender as DataGridView;
dgv.ClearSelection();
}
上一篇:解决Qt编译动态链接库could not find or load the Qt platform plugin "windows" in.问题
下一篇:构建布局良好的windows程序
文章标题:DataGridView点击空白处和失去焦点后取消选择和关闭默认选择第一行C#Winform
文章链接:http://soscw.com/index.php/essay/80623.html