如何防止 DataGridView 共享行?

Posted

技术标签:

【中文标题】如何防止 DataGridView 共享行?【英文标题】:How do I prevent a DataGridView from sharing rows? 【发布时间】:2008-10-23 11:49:08 【问题描述】:

我制作了一个自定义 DataGridViewCell,它显示自定义控件而不是单元格;但是如果 DataGridView 使用共享行,那么自定义控件实例也是共享的,所以你会得到奇怪的行为(例如,将鼠标悬停在按钮上会突出显示所有按钮)。另外,我无法访问 DataGridViewCell.Selected 属性,所以我不知道该行绘制什么颜色。

我知道我可以使用 Rows.Add(object[]) 覆盖添加行,但是第一行仍然是共享的(即索引 -1),所以颜色问题仍然存在。

我需要能够告诉 DataGridView 不要共享包含自定义单元格的行。可以用属性来完成吗?能做到吗?

【问题讨论】:

【参考方案1】:

尝试在行的一个单元格中设置工具提示文本

在以下任何一种情况下都不能共享行: 该行包含一个未在选定列中的选定单元格。 该行包含一个设置了 ToolTipText 或 ContextMenuStrip 属性的单元格。 该行包含一个 DataGridViewComboBoxCell 及其 Items 属性集。

或阅读

http://msdn.microsoft.com/en-us/library/ha5xt0d9.aspx

更多信息

【讨论】:

【参考方案2】:
DataGridViewRowCollection.AddRange(params DataGridViewRow[] dataGridViewRows)

new[]someDataGridviewRow

为我工作。

【讨论】:

以上是关于如何防止 DataGridView 共享行?的主要内容,如果未能解决你的问题,请参考以下文章

C#重绘DataGridView行

DataGridView 控制行问题

防止在 DataGridView 中选择单元格

怎么删除datagridview中选中的行啊

c# datagridview 删除行

各位仁兄,我想请教一下在C#winform中,datagridview如何导出excel文件,将excel导入datagridview.