Con*_*ole 9 c# datagridview winforms
我最近迁移了一个项目,其中.NET 4引入.NET 4.7.2了 WinForms DataGridView 标头的更改。
如您所见,我当前单击的单元格的标题未被选中。迁移后,相同的 DataGridView 如下所示:
我在发行说明
中找不到任何提及 WinForms DataGridView 更改的信息
我尝试使用以下代码设置颜色, 如何更改 winform DataGridview 标头的颜色?
this.dgvUserFields.ColumnHeadersDefaultCellStyle.BackColor = System.Drawing.SystemColors.ControlDark;
this.dgvUserFields.EnableHeadersVisualStyles = false;
Run Code Online (Sandbox Code Playgroud)
但代码似乎没有改变任何东西。
一些资源是否确认了重大更改,以及如何修复它?
Rez*_*aei 10
该行为记录在DataGridView 改进部分的 .NET Framework 4.7.2 中的辅助功能新增功能 中:
当
System.Windows.Forms.DataGridView.SelectionMode设置为 时System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect,当用户按 Tab 键浏览当前行中的单元格时,列标题将更改颜色以指示当前列。
在 .NET Framework 4.7.2 中,渲染时DataGridViewColumnHeaderCell,它会检查列是否存在IsHighlighted,然后以推送状态渲染列,以下是检测逻辑IsHighlighted:
private bool IsHighlighted()
{
return this.DataGridView.SelectionMode == DataGridViewSelectionMode.FullRowSelect &&
this.DataGridView.CurrentCell != null && this.DataGridView.CurrentCell.Selected &&
this.DataGridView.CurrentCell.OwningColumn == this.OwningColumn &&
AccessibilityImprovements.Level2;
}
Run Code Online (Sandbox Code Playgroud)
正如您在上面的代码中看到的,有&& AccessibilityImprovements.Level2. 这意味着如果您关闭该功能,行为将被重置。
正如Taw的评论中也提到的,您可以关闭该功能。为此,您可以将此设置块添加到app.config文件中:
<runtime>
<AppContextSwitchOverrides value="Switch.UseLegacyAccessibilityFeatures=false;Switch.UseLegacyAccessibilityFeatures.2=true" />
</runtime>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2982 次 |
| 最近记录: |