gpt4 book ai didi

c# - 从以编程方式多次添加的 Usercontrol 访问控件?

转载 作者:行者123 更新时间:2023-11-30 22:34:05 24 4
gpt4 key购买 nike

好吧,我已经搜索了很多,但在任何地方都找不到帮助。

我有一个带有标签的表单。当我单击一个按钮时,会添加一个新选项卡,并且会向新选项卡添加一个用户控件。

我不知道如何访问第二个 + 选项卡上的控件。我可以从第一个选项卡访问用户控件,但不能访问其他选项卡。

这是我到目前为止的代码。

private void button1_Click(object sender, EventArgs e)
{
string title = "tabPage " + (tabControl1.TabCount + 1).ToString();
TabPage newPage = new TabPage(title);
tabControl1.TabPages.Add(newPage);

UserControl1 newTabControl = new UserControl1();
newPage.Controls.Add(newTabControl);
}

private void button2_Click(object sender, EventArgs e)
{
label1.Text = userControl1.textBox1.Text;
}

因此,当我单击第一个按钮时,比如说 2 次或 3 次,我如何从该选项卡的 userControl 中的文本框中获取文本?

...也许我做错了?

最佳答案

您需要扩展 TabPage 并具有包含子对象的属性,例如:

public class ExtendedTabPage : TabPage
{
public UserControl1 UserControl { get; private set; }

public ExtendedTabPage(UserControl1 userControl)
{
UserControl = userControl;
this.Controls.Add(userControl);
}
}

然后你可以通过 .UserControl 访问它,只要你仍然有对它的引用..就像这样:

ExtendedTabPage newTab = new ExtendedTabPage(new UserControl1());
tabControl1.TabPages.Add(newTab);

newTab.UserControl.textBox1.Text = "New Tab User Control TextBox";

您还必须进入 UserControl 设计器文件并将文本框声明从私有(private)更改为公共(public)。

关于c# - 从以编程方式多次添加的 Usercontrol 访问控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8003370/

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