我在 Win7 和 XP 上都使用 Visual C# Express 2010。
我有一个 Windows 窗体应用程序项目,并且有一个 SevenXPForm(继承窗体)。
我在 Win7 的 Visual C# Express 2010 中创建它,并在属性面板中设置
.MinimumSize = 300, 300
.Size = 300, 300
在窗体中间有一个 TabControl:
但是,当我保存项目/解决方案并在 WinXP 上的 Visual C# Express 2010 中打开时,大小更改为:
.MinimumSize = 300, 279
.Size = 300, 279
并且 TabControl 不再位于表单的中间:
当我再次在 Win7 上打开它时,它又回来了。
这让我很困扰,因为我的应用程序需要在 XP 和 7(以及 Vista)上运行。
我是否必须设置一些东西才能让它在 Win7 和 WinXP 上表现完全相同?
彼得
最佳答案
您看到的问题是窗体周围的边框在 Windows XP 和 Windows 7 之间不同。这会导致窗口大小不同。 .NET 试图解决这个问题的方法是,它不会像您在属性对话框中看到的那样保存窗口的大小,而是实际保存 ClientSize
,这是窗口的内部大小。您在属性对话框中看到的是转换为包括外边框的大小。这意味着当您在边框较小的 Windows XP 上打开项目时,.NET 会尝试进行调整。
您看到的问题似乎是转换过程中的问题。它似乎确实考虑了较小的垂直尺寸,但没有考虑较小的水平尺寸。
关于你的工作。针对您的特定问题/解决方案的另一种方法不是自动调整选项卡控件的大小,而是让 .NET 为您执行此操作。如果您将表单的 Padding
设置为例如10, 10, 10, 10
并将选项卡控件的Dock
设置为Fill
,你会得到同样的效果。
虽然我在这里没有看到通用的解决方案,因为如果这是 .NET 本身进行的转换中的一个问题,这将变得非常困难。
关于c# - Visual C# 2010 速成版 : Same Form But Different Size on Win7 and WinXP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4030672/