繁体   English   中英

如何在C#中在运行时将控件移动到屏幕中心?

[英]How do I move a control to the center of a screen at runtime in C#?

所以,我有一个不同大小的控件(它是一个标签)。 我希望每次更改时都会在表单中重新定位(水平居中,而不是垂直)。 我该如何以编程方式执行此操作?

YourLabel.Left = (YourForm.Width / 2) - (YourLabel.Width / 2);

如果您希望每次表单维度更改时调整此值,只需使用Form.Resize事件。

无需代码:AutoSize = False,TextAlign = TopCenter。 让它变得像你允许它一样大。 右边的锚点是可选的。

最简单的方法来集中任何组件。 可能对某人有帮助。 右键单击Project - > Add - > Class

使用以下代码更新该类。

public static class MyClass
{
    public static void center(this Control component)
    {
        float compWidth = component.Width;
        float parentWidth = component.Parent.Width;
        float middled = (parentWidth / 2) - (compWidth / 2);

        component.Left = Convert.ToInt32(middled);
    }
}

然后你可以中间任何组件。 你可以使用这样的任何组件

MyLabel.center();
MyPanel.center();

好的,所以我站得更正 - 谢谢你们。

这是一个使用RAD(设计时)而无需代码的解决方法。 注意我会选择@ Shark的答案,因为我认为这不会达到你的结果,但这里是:

  • 在表单中删除一个按钮

  • 将其Text设置为标签中的文本

  • 大小按钮以适合文本

  • 在按钮属性“FlatStlye = Flat”中

  • 在按钮属性中,展开“平面外观”并将“边框大小”设置为0

  • 现在将Anchor设置为Left和Right

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM