【问题标题】:Winform window display and behavior change when connecting an extra display monitor连接额外显示器时 Winform 窗口显示和行为变化
【发布时间】:2021-11-01 04:04:17
【问题描述】:

编辑以解决“重复”: 这个问题是关于插入和拔出额外显示器时显示的差异。 “重复”是指显示器中的 DPI 发生变化或应用程序在不同的显示器上运行。虽然相关,但情况不同。 我问具体应用何时在同一台PC上运行

我通常使用连接到更大显示器的笔记本电脑。分辨率为笔记本:150% 1920x1080 和额外的 100% 1280x1024。

最近我开发了一个使用多种表单的 winform 应用程序。它运作良好。然而,前几天为了演示,我断开了额外的显示器并拿走了我的笔记本。当我运行应用程序时,表单维度完全错误。有时,某些地方的按钮会因为表单变小而消失,我必须手动将它们变大才能看到按钮。

更奇怪的是,我正在使用一些 dataGridViews(内部带有复选框)并且它们运行良好。但是当额外的显示被断开时,当我点击一个复选框时,行为一开始都是错误的。

有人遇到过这类问题吗?这可能是什么原因造成的?又该如何解决?

我再说一遍,当调用多个表单时会发生这种情况

PForm1 f = new PForm1();

if (f.ShowDialog()!=DialogResult.OK) {
    //...
}

PForm2 f2 = new PForm2();

if (f2.ShowDialog()!=DialogResult.OK) {
    //...
}
//....

【问题讨论】:

标签: c# winforms


【解决方案1】:

我相信这可能与我最近遇到的问题相同。在我的情况下,问题实际上是由于编译应用程序时 Visual Studio 的运行位置。如果我在不是 100% DPI 的显示器上运行 VS,那么生成的应用程序在任何其他 DPI 上都会显得混乱。但是,当我只在 100% DPI 监视器上使用 VS 编译应用程序时,应用程序在其他 DPI 上看起来很好,例如 150% 和 200%。请注意,如果您尝试以 175% 之类的 DPI 运行应用程序,您可能仍然会遇到问题,而且我认为没有任何好的解决方法。

【讨论】:

    猜你喜欢
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 2010-10-05
    相关资源
    最近更新 更多