如何使用半动态创建的控件名称
本文关键字:控件 创建 何使用 动态 | 更新日期: 2023-09-27 18:32:28
>我正在 TabControl 上创建一个新选项卡,该选项卡内部包含一个 RichTextBox,该选项卡通过设置名称 Variable 进行半动态命名,如下所示:
chatWindow.Name = name + "ChatArea";
"名称"是用户已加入的聊天频道的名称。
例如:名称 = 测试,RTB 名称将是:测试聊天区域。
有没有一种简单的方法可以通过代码访问该控件,或者我这样做的方式完全错误?
若要以编程方式检索包含 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;
}
}
当然,您需要有一种方法来识别此代码的变量部分。这意味着在进入此循环之前,应使用您要搜索的实际值设置变量名称。
如果我们可以假设每个 TabPage 只有一个 RichTextBox,则此代码会更简单。在这种情况下,在动态地创建 TabPage 及其 RichTextBox 时,可以将 TabPage 的 Name 属性设置为聊天区域,并将其用作标识控件的一种方式。
TabPage tp = yourTablControl.TabPages["chatAreaName"];
RichTextBox rtb = tp.Controls.OfType<RichTextBox().FirstOrDefault();
if(rtb != null)
{
....