我正在尝试做一个带有类似铬的标签的记事本。我的页面上有一个“新页面”按钮。当我单击它时,它会创建一个带有richtexbox 的新标签页。丰富的盒子是这样创建的
public void yeni()
{
//create a new tabpage
TabPage newPage = new TabPage("Not-" + (tabControl1.TabPages.Count + 1));
//create a new richtexbox
RichTextBox rtb = new RichTextBox();
int rtbname = tabControl1.TabPages.Count + 1;
rtb.Name = "richTextBox" + rtbname.ToString();
rtb.Anchor = (AnchorStyles.Bottom | AnchorStyles.Right | AnchorStyles.Left | AnchorStyles.Top);
rtb.BorderStyle = BorderStyle.None;
rtb.Width = 778;
rtb.Height = 395;
rtb.Location = new Point(0, 4);
rtb.HideSelection = false;
rtb.Font = new Font("Lucida Console", 9.75f);
rtb.ForeColor = Color.Maroon;
//add rtb to the tabpage
newPage.Controls.Add(rtb);
tabControl1.TabPages.Add(newPage);
//make the new created tab the selected one
tabControl1.SelectedTab = tabControl1.TabPages[tabControl1.TabPages.Count - 1];
//selectedRtb.Text = null;
openFileDialog1.FileName = null;
}
现在我创建了一个 RichTextBox,该 rtb 的名称是richTextBox*indexofthetabhere*。因此,如果我正在处理第二个标签页,则 rtb 的名称是“richTextBox2”。现在我想要做的是我想要在所选标签页上为 Richtextbox 设置一个 textchanged 事件。我在这里使用此代码获取选定的富文本框。
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
selectedone = "richTextBox" + (tabControl1.SelectedIndex+1).ToString();
selectedRtb = (RichTextBox)tabControl1.SelectedTab.Controls[selectedone];
textBox2.Text = selectedone;
}
现在在这里我得到了选定的标签索引,我得到了 rtb 名称,然后我得到了选定的 rtb 作为“selectedRtb”。现在我不能为此做一个 textchanged 事件。我不知道实际上该怎么做。我测试了上面的代码是否正常工作,是的,我得到了正确的 rtb 名称。但我不能使用它们,因为我不知道该怎么做。谢谢你的帮助。