Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Winforms在不同的环境中具有不同的大小_C#_Winforms - Fatal编程技术网

C# Winforms在不同的环境中具有不同的大小

C# Winforms在不同的环境中具有不同的大小,c#,winforms,C#,Winforms,一段时间以来,一些一直在使用我的应用程序的人抱怨WinForm的绘制过程中出现了一些奇怪的行为。 表单有一个splitcontainer,其中panel1是固定的。 直到今天,我才能够重现他们的问题 我刚刚在一台运行32位版本Win7 enterprise的笔记本电脑上安装了这个应用程序。 (应用程序在我运行64位版本Win7 ent的计算机上构建并运行时没有问题。) 为了查看发生了什么,我将项目文件复制到笔记本电脑上,并使用Visual Studio 2012打开它以查看发生了什么。然而,它让

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

我刚刚在一台运行32位版本Win7 enterprise的笔记本电脑上安装了这个应用程序。 (应用程序在我运行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
如果DPI有影响,您可以查看WinForms缩放选项,以及需要适当调整的内容


看看屏幕大小和字体缩放。非常感谢,我花了很长时间才重新解决这个问题。我从来没有想过这一点,现在我亲眼看到了,我至少可以确定它在那里。现在我想知道如何确保它不会自动缩放。(或者让人们自己决定是否需要自动缩放)。谢谢-非常有用!