c# - 不同环境Winforms大小不同

标签 c# winforms

一段时间以来,一些使用我的应用程序的人提示 WinForm 的绘制方式有一些奇怪的行为。 该表单有一个 splitcontainer,其中 panel1 是固定的。 直到今天,我才能够重现他们的问题。

我刚刚在运行 32 位版本 Win7 企业版的笔记本电脑上安装了该应用程序。 (应用程序在运行 64 位版本的 Win7 ent 的计算机上构建和运行没有问题。)

为了查看发生了什么,我将项目文件复制到笔记本电脑上并使用 Visual Studio 2012 打开它以查看发生了什么。然而,这让我惊呆了,因为我不知道该怎么做。

关于开发。机器(我的是64位win7 ent),窗体(和拆分容器)大小规范如下:

  • 表单高度:383
  • 表单宽度:707
  • 拆分容器高度:321
  • 拆分容器宽度:691
  • 分离器距离:380

当我在笔记本电脑上加载项目时,规范更改为:

  • 表单高度:419
  • 表单宽度:859
  • 拆分容器高度:397
  • 拆分容器宽度:921
  • 分离器距离:380

现在我终于可以理解某些人无法按照应有的方式看待该程序而感到沮丧。

在 32 位机器上,拆分器部分覆盖了几个按钮,这显然使程序难以使用,因为它们看不到文本。

发生这种情况有什么原因吗?

我的意思是,如果原始代码设置为特定大小值,那么无论程序在哪里运行,它不应该是这样吗? (假设用户当然没有调整大小)。

然后最重要的是,有什么方法可以解决这个问题而无需构建两个单独的版本?

最佳答案

他们可能以不同的 DPI(每英寸点数)运行他们的系统,因此由于缩放选项和对字体大小的影响,这正在改变控件在 Windows 窗体上的定位和缩放方式。

你可以看看控制面板 |外观与个性化 |显示以查找这些设置:

  • 较小 - 100% = 96 DPI
  • 中 - 125% = 120 DPI
  • 更大 - 150% = 144 DPI

您可以查看 WinForms 缩放选项,如果 DPI 有影响以及适当调整的内容。

关于c# - 不同环境Winforms大小不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12123073/

相关文章:

c# - 静态委托(delegate)是线程安全的吗?

c# - 关闭C#App时是否需要清除Native C++内存

c# - 如何从 AJAX 服务访问代码隐藏?

c# - 从 Visual Studio 连接到 sql 数据库时出错

c# - foreach c# 无法转换错误

.net - 您可以加载.Net 表单作为控件吗?

c# - 将一维数组的索引转换为二维数组 i。 e.行和列

c# - 在 Windows 中以兼容模式启动应用程序如何影响该应用程序以及我如何检测它?

c# - 为应用程序提供与 Visual Studio 相同的视觉外观

winforms - Windows 窗体解析问题