datagridview 更新后表单分辨率突然改变
Posted
技术标签:
【中文标题】datagridview 更新后表单分辨率突然改变【英文标题】:Form resolution suddenly changes after datagridview update 【发布时间】: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。如果这两件事中的任何一个对您有帮助,那么您可以尝试找出导致问题的原因。你也可以尝试用类似的代码做一个模拟项目,看看你的代码的简化版本是否也会发生这种情况。 【参考方案1】:我发现问题不在于表单的布局/属性,也不在于 dataGridView 组件设置,而是由第三方库触发:GemBox.Pdf,它在某种程度上对屏幕的 DPI 很敏感。
将[assembly: System.Windows.Media.DisableDpiAwareness]
放入文件 AssemblyInfo.cs 解决了这个问题
非常感谢大家的帮助!!
【讨论】:
以上是关于datagridview 更新后表单分辨率突然改变的主要内容,如果未能解决你的问题,请参考以下文章
使用来自另一个表单的数据更新 datagridview (C#)