当前位置:  开发笔记 > 开发工具 > 正文

WinForms - DataGridView - 未选择单元格

如何解决《WinForms-DataGridView-未选择单元格》经验,为你挑选了3个好方法。

有没有办法让DataGridView没有选择单元格?我注意到即使失去焦点()它至少有一个活跃的细胞.还有其他模式允许这个吗?或其他一些技巧?



1> Aleris..:

DataGridView.CurrentCell属性可用于清除焦点矩形.

您可以将此属性(DataGridView.CurrentCell)设置为null以临时删除焦点矩形,但是当控件获得焦点并且此属性的值为null时,它将自动设置为FirstDisplayedCell属性的值.

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.currentcell.aspx



2> David Hall..:

我发现DataGridView.CurrentCell = null在尝试获取请求的行为时,这对我不起作用.

我最终使用的是:

    private void dgvMyGrid_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
    {
        if (dgvMyGrid.SelectedRows.Count > 0)
        {
            dgvMyGrid.SelectedRows[0].Selected = false;
        }

        dgvMyGrid.SelectionChanged += dgvMyGrid_SelectionChanged;
    }

它需要在DataBindingComplete事件处理程序中.

附加SelectionChanged事件处理程序的位置不会影响所需的行为,但我将其留在代码片段中,因为我注意到我的需求至少最好只在数据绑定后附加处理程序,这样我就可以避免引发选择更改事件对于每个绑定的项目.



3> J. Ouwehand..:

在选择更改事件上将DataGridView.CurrentCell设置为null的问题是不会命中后续事件(如单击).

对我有用的选项是将选择颜色更改为网格颜色.因此,选择将不可见.

RowsDefaultCellStyle.SelectionBackColor = BackgroundColor;
RowsDefaultCellStyle.SelectionForeColor = ForeColor;

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有