【发布时间】:2015-10-21 01:20:17
【问题描述】:
我正在使用 TabControl 并将 TabPages 附加到 TabControl,但是在使其中一个 TabPages 响应事件时遇到问题。这让我觉得我错过了关于这些类之间关系的一些东西,所以希望能得到一些帮助。我想向 TabControl 添加一些 TabPage 对象,对于其中一个(添加的第一个),我想向它发送一个事件以使其执行某些操作。
这是基本代码:
/* 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();
}
当我运行这段代码时,据我所知,DoSomething() 永远不会被调用。我尝试了各种方法,例如 Click 事件等,但无法按预期工作。我错过了什么?
谢谢,马丁
【问题讨论】:
-
你可以试试 GotFocus 活动:
tabPage.GotFocus += ...;或尝试 TabControl 的 Selected 事件:tabControl.Selected += ...(更多信息:msdn) -
不太清楚你那边发生了什么,但我可以让它在我这边工作。您粘贴的第一段代码实际上是什么时候调用的?你在任何方法之外展示它。请显示正确的代码。这里我把它放在一个 Button.Click 事件处理程序中。
标签: c# events tabcontrol tabpage