gpt4 book ai didi

c# - 如何用相同大小的按钮填充面板

转载 作者:行者123 更新时间:2023-12-04 12:52:40 26 4
gpt4 key购买 nike

我有一个PanelPanel里面有两个或更多( future )按钮。

如何使这些按钮完全填满 Panel 并在应用程序运行期间独立地 Panel 大小变化?

编辑:根据谈论调整大小事件的答案。问题是当添加下一个按钮时,它不会自动调整其余按钮的大小。此外,据我所知,只有在调整 Panel 大小时才会发生这种调整,首先我必须在设计器中仔细设置按钮的大小。理想的解决方案应该像 Java 的 GridLayout 一样工作 -> 不用担心任何按钮的大小。

enter image description here

最佳答案

您可以依靠面板的 SizeChanged 事件来获得您想要的内容。示例代码:

 private void Form1_Load(object sender, EventArgs e)
{
panel1.Dock = DockStyle.Fill;
panel1.SizeChanged += panel1_SizeChanged;

}

private void panel1_SizeChanged(object sender, EventArgs e)
{
resizeButtons();
}

private void resizeButtons()
{
int totButtons = panel1.Controls.OfType<Button>().Count();

Point curPos = new Point(0, 0);
foreach(Button but in panel1.Controls.OfType<Button>())
{
but.Width = panel1.Width / totButtons;
but.Location = curPos;
curPos = new Point(curPos.X + but.Width, 0);
}
}

此代码确保无论 Panel1 的大小发生多大变化,任意数量的按钮都会填充所有水平空间。

关于c# - 如何用相同大小的按钮填充面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20955804/

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