vb.net 应用程序取消按钮在 Windows 7 中运行到窗体的边缘

Posted

技术标签:

【中文标题】vb.net 应用程序取消按钮在 Windows 7 中运行到窗体的边缘【英文标题】:vb.net application Cancel button runs into the edge of the form in Windows 7 【发布时间】:2013-10-10 00:17:31 【问题描述】:

我有一个用 vb.net 编写的应用程序,它在 Windows XP、Vista 和 7 中都可以正常工作。但是,在 Windows Vista 和 7 中,所有的按钮布局(特别是右下角的退出/取消按钮)表单的行为很奇怪,因为退出/取消按钮一直运行到触摸表单的边缘/边界,如下图所示。

这在 Windows XP 中不会发生。在 Windows 7 中禁用视觉样式也不会发生,如下所示

这个问题的原因是什么?有什么办法可以解决这个问题,让它在 XP 和 Windows 7 上看起来都很好?

编辑:我代表一位朋友发布此内容 - Abhijit (https://***.com/users/2642426/abhijit-hota) - 他想自己发布此内容,但声望不到 10。显然,您需要至少 10 声望才能发布带有图片的问题。

【问题讨论】:

我的水晶球说这个表单继承自一个实际具有按钮的基本表单类,并且它们被锚定在底部+右侧。像这样的细节是任何问题都不能跳过的。 【参考方案1】:

解决此问题的一种方法是将按钮放在TableLayoutPanel 中。然后就可以了

    将它从边缘移开一点 或者在右侧多留一列作为边距或装订线 或者以某种方式锚定它(可能是左)以防止它

另一个可能的原因是控件没有使用Anchor 属性,并且他试图将它们整齐地排列为绝对位置(Visual Stlyes 会随着相对大小和文本范围的变化而混乱)。任何给定的用户可能会或可能不会使用样式Anchors,因此布局面板可以很好地整理内容。

【讨论】:

以上是关于vb.net 应用程序取消按钮在 Windows 7 中运行到窗体的边缘的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 VB.net 获取 Windows 控制台应用程序的文本?

如何通过 vb.net 让其他应用程序(计算器)在 winforms 中脱颖而出?

如何使用 AutoIt 或 Windows UI 自动化单击应用程序中的按钮

WPF UserControl vb.net 不会显示自定义字体系列

在 vb.net windows 程序中选择案例

项目发布后无法正常工作。 VB.NET