首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# TabControl TabPage传递事件

C# TabControl TabPage传递事件
EN

Stack Overflow用户
提问于 2015-10-21 09:20:17
回答 1查看 637关注 0票数 0

我正在使用TabControl并将TabPages附加到TabControl,但在使其中一个TabPages响应事件时遇到问题。这让我觉得我遗漏了一些关于这些类之间关系的东西,所以我希望能得到一些帮助。我想将一些TabPage对象添加到TabControl中,并且对于其中一个(添加的第一个),我想向它发送一个事件,让它做一些事情。

下面是基本代码:

代码语言:javascript
复制
/* 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事件,等等,但都不能按预期工作。我遗漏了什么?

谢谢,马丁

EN

回答 1

Stack Overflow用户

发布于 2015-10-21 09:32:25

这对我来说很好用:

代码语言:javascript
复制
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变量的逻辑可能不是您想要的,所以如果您可以澄清它的语义,我可以更新我的代码片段。

干杯

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33249427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档