【问题标题】:How do I change the Header's default selection color of a DataGridView? [closed]如何更改 DataGridView 的 Header 的默认选择颜色? [关闭]
【发布时间】:2020-11-21 02:41:41
【问题描述】:

在上图中,蓝色使标题文本不可见,我想更改它。这是单击相应列的单元格时的条件。此处,任何一个值为 345 的单元格已被点击。

我的问题是 - 如何更改这种蓝色?也许是突出显示的颜色。

dataGridView1.ColumnHeadersDefaultCellStyle.ForeColor = ?

References on settings

【问题讨论】:

  • 我不确定这是否是您的要求,如果不是,请原谅我。您发布的当前代码应该可以工作。在我的测试中,您引用的命令就像... dataGridView1.ColumnHeadersDefaultCellStyle.ForeColor = Color.Orange; ... 按预期工作。这会将所有标题单元格的前景色设置为橙色。根据您的描述,听起来您想使用网格的……dataGridView1.ColumnHeadersDefaultCellStyle……SelectionForeColorSelectionBackColor。 This applies to the column “headers” when a cell in that column is selected.
  • 不幸的是,我的测试表明“SelectionBackColor”有效,但“SelectionForeColor”无效。在我的研究中,这似乎是网格中的一个错误。我找不到确凿的证据;但是,它显然不像 MS 文档和其他帖子中描述的那样工作。从这里我猜你可能需要为此创建自己的绘制程序,或者,因为我们知道选择背景颜色“确实”有效,一个更简单的解决方案可能是简单地将背景颜色更改为与标题对比更好的颜色前景色。

标签: c# winforms datagridview


【解决方案1】:

当 DGV 的 SelectionMode 属性设置为 FullRowSelect 时,选择一个单元格突出显示该单元格的列标题。通常,这不会影响为单元格选择的颜色,因为标题单元格的背景颜色是固定的。但是,因为您有EnableHeadersVisualStyles = false,并且您正在更改标题单元格的前颜色,所以您还需要更改其选择的背景颜色。

您可以使用DataGridViewCellStyle.SelectionBackColor 属性。例如:

dataGridView1.ColumnHeadersDefaultCellStyle.SelectionBackColor = Color.LightGray;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-26
    • 2014-10-26
    • 1970-01-01
    • 2016-03-21
    • 1970-01-01
    • 1970-01-01
    • 2015-10-06
    • 1970-01-01
    相关资源
    最近更新 更多