以编程方式选择 DataGridView 中的整行(不使用 ...Rows[].Selected)

Posted

技术标签:

【中文标题】以编程方式选择 DataGridView 中的整行(不使用 ...Rows[].Selected)【英文标题】:Selecting entire row in DataGridView programmatically (without using ...Rows[].Selected) 【发布时间】:2017-03-01 19:33:24 【问题描述】:

我一直在尝试使用 DataGridView 创建 Mp3 列表来显示信息。我想在运行时添加数据,并且我有诸如艺术家、歌曲名称、评级、路径之类的列...但我希望能够在选择单元格时选择整行。我为此使用了这段代码:

    private void DataViewGrid1_MouseClick(object sender, MouseEventArgs e)
    
        int rindex = DataViewGrid1.CurrentCell.RowIndex;
        DataViewGrid1.Rows[rindex].Selected = true;
    

它可以工作,但问题是它太慢了!当我点击单元格时,整行被选中,但它在视觉上很糟糕。我可以看到单元格被选中,延迟后整行被选中,但延迟太长了。有没有更快(或更好)的方法来做到这一点?或者也许有更好的控制可以做到这一点?我还希望能够以不同的字体呈现行(例如:更改列表中同一艺术家的字体颜色)。 我愿意接受所有建议。 谢谢!

【问题讨论】:

【参考方案1】:
DataViewGrid1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

将通过单击行的标题或该行中包含的单元格来选择整行。

如果您想根据单元格中的值进行着色,this 之类的东西就可以了。

【讨论】:

这很有帮助,但是...第一次单击网格中的某个单元格时,它会选择然后取消选择该单元格(非常快速)而不选择一行。任何其他时间(单击)效果都很好。知道为什么会这样吗?

以上是关于以编程方式选择 DataGridView 中的整行(不使用 ...Rows[].Selected)的主要内容,如果未能解决你的问题,请参考以下文章

c# winform DataGridView单击选中一整行,只能单选,不能选择多行,只能选择一行

如何匹配 Notepad++ 中的整行以进行搜索/替换?

如何以编程方式定义 datagridview 中的列?

Excel中删除含有空值的整行或是整列

在 GROUP BY 中选择具有最大日期的整行

如何根据列中的某个值为 ag 网格中的整行提供背景颜色?