我正在TabControl上创建一个新选项卡,并且该选项卡内部包含一个名为Variable的动态命名的RichTextBox,如下所示:
chatWindow.Name = name + "ChatArea";
“name”是用户加入的聊天频道的名称。
ex:name = Test,RTB名称为:TestChatArea。
是否有通过代码访问该控件的简单方法,或者我是以完全错误的方式进行此操作?
答案 0 :(得分:1)
要以编程方式检索包含RichTextBox控件的TabPage,您应该搜索TabControl中的所有tabPage,并检查该页面中的任何RichTextBox是否具有您要搜索的名称
foreach(TabPage tp in yourTablControl.TabPages)
{
RichTextBox rtb = tp.Controls.OfType<RichTextBox().FirstOrDefault(x => x.Name == name + "ChatArea");
if(rtb != null)
{
// rtb is your control, do your stuff in a sub
// passing the found control and break the loop
DoYouStuffWithRichTextBox(rtb)
break;
}
}
当然,您需要有一种方法来识别此代码的变量部分。这意味着变量 name 应该在使用您要搜索的实际值进入此循环之前设置。
如果我们假设每个TabPage只有一个RichTextBox,那么这段代码会更简单。在这种情况下,当动态创建TabPage及其RichTextBox时,您可以将TabPage的Name属性设置为聊天区域,并将其用作识别控件的方法
TabPage tp = yourTablControl.TabPages["chatAreaName"];
RichTextBox rtb = tp.Controls.OfType<RichTextBox().FirstOrDefault();
if(rtb != null)
{
....