如何从C#中的TabPage获取控件?

我有几个TabPages,每个都包含富文本框。 如何在选定的选项卡上访问richtechbox?

TabPage selectedTab = tabControl.SelectedTab; RichTextBox selectedRtb = selectedTab.Controls.Find("rtb", true).First() as RichTextBox; 

这是我尝试但没有运气。

添加:

这是使用richtextbox控件添加标签页的方式

 TabPage newTab = new TabPage(name); RichTextBox rtb = new RichTextBox(); rtb.Dock = DockStyle.Fill; rtb.BorderStyle = BorderStyle.None; rtb.Text = file.Data; newTab.Controls.Add(rtb); tabControl.TabPages.Add(newTab); tabControl.SelectedTab = newTab; 

如果这是WinForms,它只会是:

 if (selectedTab.Controls.ContainsKey("rtb")) RichTextBox selectedRtb = (RichTextBox)selectedTab.Controls["rtb"]; 

如果rtb是RichTextBox控件的名称。

创建控件时,请为其添加名称:

 RichTextBox rtb = new RichTextBox(); rtb.Name = "rtb"; 

你的方法不起作用的原因是因为你试图通过使用控件的name属性来找到它。

查看代码,您没有设置Name属性。 如果您可以提前生成已知名称,则可以在查找控件时使用该名称。

你也可以试试这个:

 var rtb = tabControl.SelectedTab.Controls.Cast() .FirstOrDefault(x => x is RichTextBox);