【问题标题】:How to fix the size of a C# Windows Form Application from resizing如何通过调整大小来修复 C# Windows 窗体应用程序的大小
【发布时间】:2014-01-28 23:17:33
【问题描述】:

我正在开发一个 C# Windows 窗体应用程序,当我在开发 PC 上构建窗体时,它看起来不错,但是当我将 exe 移到另一台机器上时,一切都会调整大小。然后通过图片框和按钮控件。我已经在 VS 中指定了控件的大小,但它似乎忽略了这些。我还将最小和最大尺寸固定为相同,但这并没有解决问题。

谁能指出我错过的东西的方向,因为我需要修复控件的大小。

提前致谢。

新电脑

开发电脑

this.interviewPb.Image = ((System.Drawing.Image(resources.GetObject("interviewPb.Image")));
this.interviewPb.Location = new System.Drawing.Point(771, 366);
this.interviewPb.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.interviewPb.Name = "interviewPb";
this.interviewPb.Size = new System.Drawing.Size(393, 492);
this.interviewPb.TabIndex = 9;
this.interviewPb.TabStop = false;

【问题讨论】:

  • 大概您的应用程序已缩放。检查这个thread
  • 可能另一台机器的 DPI 配置与你的不同。
  • @RobertSnyder 这有什么帮助?
  • @ThorstenDittmar 使用 WPF 将立即解决您的所有问题,而无需编写任何代码!!1!
  • @UweKeim 是的,我已经注意到了。我的项目工时减少到接近于零。我需要做的就是在 VS 中创建一个新的 WPF 项目 - 完成。

标签: c# winforms


【解决方案1】:

尝试将表单的AutoScaleMode 属性设置为none。即使不同机器上的 DPI 分辨率不同,这也应该可以防止调整大小。

【讨论】:

  • 对所有具有 AutoScaleMode 属性的嵌套(用户)控件也执行此操作。
  • @UweKeim 或者你可以设置Inherited
  • 一般来说,这是相当糟糕的建议。它不会阻止字体重新缩放,它们的大小以点表示。所以他们不再适合他们的控制。忽略“视网膜”显示器是每个人很快都会后悔的另一件事。
  • @HansPassant 确实如此 - 但试图为不同的 DPI 分辨率保持相同的控件大小也是如此,这正是 OP 所要求的。我宁愿说应该重新考虑最初的要求。
  • 在我的项目中,我总是以像素为单位指定字体大小。 15 年后,当 Windows 真正支持 Retina 分辨率时,将把它改回 DPI。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-19
  • 2012-02-13
  • 2013-04-30
  • 2012-10-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多