【问题标题】:Form resolution suddenly changes after datagridview updatedatagridview 更新后表单分辨率突然改变
【发布时间】:2021-10-25 07:30:30
【问题描述】:

我有这个问题:我的表单模块在运行时意外更改了分辨率。

我有一个包含 DataGridView 的表单模块,当我运行表单时一切正常,表单显示正确。 但是,当我在表单上拖放时,它会突然改变分辨率而我无法找到解释。

应用程序目标框架是.NET 4.5.2

我已经验证在调用DataGridView组件的Update和Refresh方法时会出现问题,但是尽管尝试了无数次我还是不明白问题是什么。

        this.dataGridView.BeginInvoke(new Action(() => this.dataGridView.Update()));
        this.dataGridView.BeginInvoke(new Action(() => this.dataGridView.Refresh()));

这是 Form 和 DataGridView 组件的设置

感谢大家的帮助

【问题讨论】:

  • 我会检查您是否在窗口上有任何自动调整大小设置。它可能会尝试使窗口大小适合内容。
  • 感谢@R.Czq AutoSize 的形式是假的,AutoScaleMode 是字体
  • 您设备的 DPI / 字体缩放选项是什么? support.microsoft.com/en-us/windows/…
  • @MarcelPiquet 然后我会尝试将 AutoScaleMode 设置为 none 并查看是否有任何影响。您也可以尝试使用 dataGridView 的 AutoSizeColumnsMode 并将其设置为 none。如果这两件事中的任何一个对您有帮助,那么您可以尝试找出导致问题的原因。你也可以尝试用类似的代码做一个模拟项目,看看你的代码的简化版本是否也会发生这种情况。

标签: c# winforms datagridview resolution


【解决方案1】:

我发现问题不在于表单的布局/属性,也不在于 dataGridView 组件设置,而是由第三方库触发:GemBox.Pdf,它在某种程度上对屏幕的 DPI 很敏感。

[assembly: System.Windows.Media.DisableDpiAwareness] 放入文件 AssemblyInfo.cs 解决了这个问题

非常感谢大家的帮助!!

【讨论】:

    猜你喜欢
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-06
    • 2013-10-19
    • 2015-04-29
    • 1970-01-01
    相关资源
    最近更新 更多