[英]C# TabControl TabPage passing events
我正在使用TabControl并将TabPages附加到TabControl,但是在使其中一个TabPages响应事件时遇到问题。 它使我认为我缺少有关这些类之间的关系的信息,因此希望能提供一些帮助。 我想将多个TabPage对象添加到TabControl,对于其中一个(添加的第一个对象),我想向它发送一个事件以使其执行某些操作。
这是基本代码:
/* 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事件之类的各种方法,但是无法使其按预期工作。 我想念什么?
谢谢马丁
这对我来说很好用:
public partial class TabPageForm : Form
{
private List<string> tabNames;
public TabPageForm()
{
InitializeComponent();
tabNames = new List<string>();
tabNames.Add("NewTab");
}
private void button1_Click(object sender, EventArgs e)
{
bool first = true;
foreach (string tabName in tabNames)
{
TabPage tabPage = CreateTabPage(tabName);
methodTabPage.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();
}
private void DoSomething()
{
throw new NotImplementedException();
}
}
当我进入新创建的选项卡时,将调用DoSomething。
当然, first
变量的逻辑可能不符合您的预期,因此,如果您可以弄清它的语义,就可以更新代码片段。
干杯
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.