Tabpage 上的 WinForms 在 UserControl 中选择了 运行 方法
WinForms on Tabpage selected run method in UserControl
我的 Tabcontrol 有 3 个 Tabpages。我目前在 Tabpage 1,而我会 select Tabpage 2。我想 运行 我的 UserControl 中的一个方法分配给那个 Tabpage。您可以将其称为 "Focus" 侦听器。我将如何实施?或者这可能吗?
编辑:
假设我有一个名为 "UserControl1.cs" 的文件,这里有一个方法 OnFocus()
我想在其 Tabpage 成为活动选项卡时调用此方法。我像这样将 UserControl 分配给 Tabpage:
// AllOpenUserControls = List<UserControl> // With the active pages
TabPage newPage = new TabPage();
newPage.Text = title;
newPage.AutoScroll = true;
newPage.BackColor = SystemColors.Window;
newPage.Controls.Add(userControl);
AllOpenUserControls.Add(userControl);
tabControl.TabPages.Add(newPage);
在此处为 SelectedIndexChanged
添加 EventHandler
:
...
tabControl.TabPages.Add(newPage);
tabControl.SelectedIndexChanged += new EventHandler(userControl.OnFocus);
您的 OnFocus
-方法应该如下所示:
public void OnFocus(object sender, System.EventArgs e)
{
TabControl tc = (TabControl)sender;
if (tc.SelectedTab == this.Parent)
{
//Parent-Tab is selected, do stuff...
}
}
我的 Tabcontrol 有 3 个 Tabpages。我目前在 Tabpage 1,而我会 select Tabpage 2。我想 运行 我的 UserControl 中的一个方法分配给那个 Tabpage。您可以将其称为 "Focus" 侦听器。我将如何实施?或者这可能吗?
编辑:
假设我有一个名为 "UserControl1.cs" 的文件,这里有一个方法 OnFocus()
我想在其 Tabpage 成为活动选项卡时调用此方法。我像这样将 UserControl 分配给 Tabpage:
// AllOpenUserControls = List<UserControl> // With the active pages
TabPage newPage = new TabPage();
newPage.Text = title;
newPage.AutoScroll = true;
newPage.BackColor = SystemColors.Window;
newPage.Controls.Add(userControl);
AllOpenUserControls.Add(userControl);
tabControl.TabPages.Add(newPage);
在此处为 SelectedIndexChanged
添加 EventHandler
:
...
tabControl.TabPages.Add(newPage);
tabControl.SelectedIndexChanged += new EventHandler(userControl.OnFocus);
您的 OnFocus
-方法应该如下所示:
public void OnFocus(object sender, System.EventArgs e)
{
TabControl tc = (TabControl)sender;
if (tc.SelectedTab == this.Parent)
{
//Parent-Tab is selected, do stuff...
}
}