我正在試圖用chrome-like標籤來做一個記事本。我的頁面上有一個「新建頁面」按鈕。當我點擊它時,它會創建一個帶有richtexbox的新選項卡。該richboxes都是這樣動態創建的RichTextBoxes的TextChanged事件
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 *。所以如果我在第二個tabpage上工作,rtb的名稱是「richTextBox2」。現在我想要做的是我想在選定的頁面上的richtextbox一個textchanged事件。我在這裏使用這段代碼得到了選擇的richtextbox。
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名稱。但我不能使用它們,因爲我不知道該怎麼辦..感謝您的幫助。
謝謝你的回答 – user1767833 2013-02-15 14:25:28