我正在尝试添加一个TabPage,并在其中添加一个Textbox。 问题是如果我有更多的TabPages,TextBox的内容总是最后添加的而不是选中的TabPage。
编辑3 //
public partial class Form1 : Form
{
int tabcount = 0;
TextBox TextE;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// Create a new textbox to add to each control
TextE = new TextBox();
// Fill the tabpage
TextE.Dock = DockStyle.Fill;
TextE.Multiline = true;
// Create new tab page and increment the text of it
TabPage tab = new TabPage();
tab.Text = "Tab" + tabcount.ToString();
// Add Textbox to the tab
tab.Controls.Add(TextE);
// Add tabpage to tabcontrol
tabControl1.Controls.Add(tab);
tabcount++;
}
private void button2_Click(object sender, EventArgs e)
{
// Text content to messagebox...
MessageBox.Show(TextE.Text);
}
}
答案 0 :(得分:1)
尝试使用数字索引(“Tab01”,“Tab02”等)命名选项卡,然后将当前选项卡转换为Scintilla TextEditor
。不要被对象名称和Name属性搞糊涂。 controls集合使用name属性作为索引键。因此,即使您使用相同的名称声明了对象,只要name属性不同,您就可以添加它们。
例如
Scintilla NewTextEditor = new Scintilla();
NewTextEditor.Name = "tab" + (this.Controls.OfType<Scintilla>.Count + 1).ToString("00");
this.Controls.Add(NewTextEditor);
这将添加一个新的控件更改name属性,以便可以添加它。
然后假设您有办法确定当前标签
Scintilla TextEditor = CurrentTab;