Reputation: 69
I have the following code in my WinForms C# app:
private void button2_Click(object sender, EventArgs e)
{
var txtbox2 = new System.Windows.Forms.RichTextBox();
TabPage createdtabpage = new TabPage("I am a tab");
tabControl1.TabPages.Add(createdtabpage);
createdtabpage.Controls.Add(txtbox2);
}
And I want to access the text of txtbox2
when a separate button is clicked. I have this code:
private void button1_Click(object sender, EventArgs e)
{
//Either this:
string text = txtbox2.Text;
//or maybe this:
string text = createdtabpage.Controls[txtbox2]
}
However, this code doesn't work because the variables are not accessible to outside functions.
Does anybody have a good way to access these TabPage controls from an outside function?
Thanks for any help
Upvotes: 1
Views: 86
Reputation: 6638
From the control tab, the tab is selected and then the desired control is found by name.
use this code
private void button1_Click(object sender, EventArgs e)
{
var textBox = (RichTextBox)tabControl1.SelectedTab.Controls["txtbox2"];
MessageBox.Show(textbox.Text);
}
Without a name, you have to navigate through all the controls, and for example, if you have multiple richTextBox controls, know the order in which they are located.
foreach (Control control in tabControl1.SelectedTab.Controls)
{
if(control is RichTextBox)
{
MessageBox.Show(control.Text);
}
}
Upvotes: 1