gpt4 book ai didi

vb.net - 在表单上居中(完美)动态创建的按钮?

转载 作者:行者123 更新时间:2023-12-01 08:17:36 29 4
gpt4 key购买 nike

这是我在这里的第一篇文章,所以我希望我提供所有正确的信息。

我目前正在开发一个简单的菜单应用程序,它有一个按钮控制数组(使用 MSDN 建议的控制数组的变通方法),我很难重新调整表单大小和将按钮居中。这些按钮是在编译时创建的(使用 INI 文件中的参数),我当前的居中算法似乎将它们稍微设置在右侧。我正在使用“button.location = new Point(...,...)”方法,但在阅读此内容后,它说这些值位于按钮的左上角而不是中心,因此考虑了向右的轻微偏移.

我的两个问题是这样的:

如何在编译时完美地将这些按钮居中?我尝试通过减去按钮宽度的一半来计算差异,但按钮宽度和点属性似乎不兼容,并且按钮被严重偏移。

而且...我重新调整菜单大小的另一个目标是在调整大小时让按钮完美地扩展和收缩。当按钮是动态创建时,似乎 anchor 定无效,所以我被迫编写比率算法......有没有办法让 anchor 定工作?

这是我在加载中的内容:

 MyControlArray(i).Location = New Point(CInt(((Width - ButtonWidth) / 2) +_
(ButtonWidth / 2)), CInt((Height - MyControlArray(i).Height) / 2))

我已经尝试过:
New Point(CInt(((Width - ButtonWidth) / 2)), CInt((Height - MyControlArray(i).Height)_
/ 2))

最佳答案

那是因为您使用了错误的变量,宽度和高度包括边框和标题。您应该改用 ClientSize 属性。像这样:

Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
MyBase.OnLoad(e)
Dim btn = New Button()
Controls.Add(btn)
btn.Location = New Point((ClientSize.Width - btn.Width) \ 2, _
(ClientSize.Height - btn.Height) \ 2)
End Sub

关于vb.net - 在表单上居中(完美)动态创建的按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6889796/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com