I am working with a TabControl and attaching TabPages to the TabControl, but am having a problem making one of the TabPages respond to an event. It makes me think that I am missing something about the relationship between these classes, so would appreciate some help. I want to add a number of TabPage objects to TabControl, and for one of them (the first one added), I want to send it an event to make it do something.
Here is the basic code:
/* tabControl is a TabControl object, and
tabNames is a string array */
bool first = true;
foreach (string tabName in tabNames)
{
TabPage tabPage = CreateTabPage(tabName);
tabControl.Controls.Add(tabPage);
if (first)
{
methodTabPage.Select();
first = false;
}
}
private TabPage CreateTabPage(String name)
{
TabPage tabPage = new TabPage(name);
tabPage.Enter += new EventHandler(MethodTab_Entered);
return tabPage;
}
private void MethodTab_Entered(object sender, EventArgs e)
{
DoSomething();
}
When I run this code, as far as I can tell, DoSomething() never gets called. I have tried various things such as the Click event, and so on, but cannot get this to work as expected. What am I missing?
Thanks, Martin
This here works fine for me:
DoSomething is called when I enter the newly created tab.
Of course, the logic of the
first
variable is probably not as you intend it to be, so if you could clarify the semantics of it, I could update my code snippet.Cheers