【问题标题】:Control snapping in Visual Studio 2010Visual Studio 2010 中的控制捕捉
【发布时间】:2011-08-13 11:17:54
【问题描述】:

我在这里有点挑剔,但也许有一个简单的解决方案可以节省我一些时间。

当我在设计器中绘制我的 Winforms GUI 时,控件会捕捉到某些点。我可以将一个控件的文本基线与另一个控件的基线对齐,我可以将一个控件的左侧和/或顶部与另一个控件对齐,等等。这一切都很棒。

还有什么很棒的是,这些控件可以捕捉到其他控件,它们的边距隔开。这意味着如果我正在制作一个垂直的文本框数组,那么我可以让它们在我的 GUI 中等距 - 它看起来不那么混乱。

然而,并非一切都正确捕捉,或者根本无法捕捉。假设我已经放入了我的文本框,现在我希望减小表单的宽度,以便文本框的边缘和表单的边缘之间没有空白。此外,我希望 TextBoxes 的边缘和 Form 的边缘之间的距离在左侧与右侧相同。如果我将表单的右边缘向左拖动,朝向 TextBoxes,它将不会对齐。我只剩下计算来确定宽度应该是多少,或者是一个杂耍行为来逐渐减小宽度,直到 TextBox 捕捉到右侧的左侧。

我并不是说这个过程特别困难或耗时。只是,如果它要抓拍,整个过程会轻松得多。

VS2010 中是否有内置选项,或者可能是扩展?还是我一开始就做错了?

【问题讨论】:

    标签: winforms visual-studio visual-studio-2010 windows-forms-designer


    【解决方案1】:

    每当需要定位控件以使其“捕捉”到窗体边缘时,我通常首先将控件移动(或调整大小)到正确的大小,然后更改要锚定的那些控件的控件“Anchor”属性到相应的表单边缘(即使表单本身不允许调整大小)。

    这样,每当我调整表单大小时,控件相对于该表单的位置保持不变,只需根据需要调整控件大小或移动控件(取决于选择的 Anchor 属性)。

    我完全同意在调整表单大小时将表单“捕捉”到控件的能力非常有用,但通常可以通过这种方式使用锚属性来解决问题 - 当它不起作用的时候(例如当一个表单完全由一列文本框组成时,高度是固定的),恐怕你需要求助于计算,但我发现我的大多数对话框都是可调整大小的。

    【讨论】:

      【解决方案2】:

      设计器中的对齐线在移动任何内置控件或调整其大小时都能完美运行。它们唯一不起作用的情况是当您调整 form 本身的大小时。

          

      我同意这里也有对齐线会非常方便。我希望我知道一种方法来实现这一点。但不幸的是,我不相信有一个。

      解决方法是通过数学方式计算适当的大小,或者猜测调整表单的大小,然后通过拖动其中一个控件(并使用出现的对齐线)检查您的工作。不幸的是,我经常经历与您描述的相同的“杂耍行为”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-16
        • 2012-05-04
        • 1970-01-01
        • 2018-04-15
        • 1970-01-01
        相关资源
        最近更新 更多