gpt4 book ai didi

c# - 以编程方式将按钮添加到 TabControl (TabPage)

转载 作者:太空宇宙 更新时间:2023-11-03 13:29:09 24 4
gpt4 key购买 nike

我读了这个话题(Adding buttons to a TabControl Tab in C#)但我不明白为什么我下面的代码只向标签页添加一个按钮。我显然已经调试过 foreach 是否正常工作。

foreach (string line in File.ReadAllLines(@"C:\quicklauncher.ini"))
{
TabPage page = new TabPage(foldername);
DirectoryInfo d = new DirectoryInfo(line);
foreach (FileInfo file in d.GetFiles("*.*"))
{
Button button = new Button();
button.Text = file.Name;
button.Click += new EventHandler(button_Click);
page.Controls.Add(button);
}
tabControl.TabPages.Add(page); //add our tab page to the tab control
}

谢谢,史蒂夫

最佳答案

您认为它只为您添加了 1 个按钮,但实际上并没有,它为您添加了所有按钮,但这些按钮具有相同的位置(默认情况下为 (0,0) ).这就是为什么您确实认为只有 1 个按钮(因为您只看到最后一个按钮位于其他按钮之上)。

你添加了按钮自动到你的标签页,所以你应该有一些规则来定位它们,我不确定那个规则是什么但我想你想将它们垂直排列(只是一个例如),我将更正您的代码以实现这样的事情,至少您会看到它起作用,并且实际上所有按钮都已正常添加:

//you need some variable to save the next Top for each new button:
//let's call it nextTop:
int nextTop = 0;
foreach (FileInfo file in d.GetFiles("*.*"))
{
Button button = new Button { Top = nextTop,
Text = file.Name };
button.Click += new EventHandler(button_Click);
page.Controls.Add(button);
nextTop += button.Height + 5; //it's up to you on the
//Height and vertical spacing
}
//...

您还可以尝试使用一些布局控件,如 FlowLayoutPanelTableLayoutPanel 来包含所有按钮,它们可以帮助您按照您可能想要的方式排列按钮,只需尝试它。

关于c# - 以编程方式将按钮添加到 TabControl (TabPage),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21262627/

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