0

我有一个带有 2 个标签的表格。我可以选择初始化后查看的选项卡,每次初始化 tab2 后我都需要一些初始代码:

public partial class SetupComponent : Form
{
    public SetupComponent(bool tab2)
    {
        InitializeComponent();
        if (tab2)
        {
            this.tabControl1.SelectedTab = tabPage2;
        }
    }

    private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
    {
        textBox1.SelectionStart = textBox1.Text.Length;
        textBox1.ScrollToCaret();
        textBox2.SelectionStart = textBox2.Text.Length;
        textBox2.Focus();
    }
}

如果我用tab2=false调用这个类,然后单击 tab2,则调用tabControl1_SelectedIndexChanged

但是,如果我在 SetupComponent 期间选择tab2=true,我发现不可能执行该代码。我找到的所有 TabControl1_Event 都太早了,我没有找到匹配的 TabPage2_Event。

我该如何管理它?

4

1 回答 1

0

我使用 Paint_Event 解决了这个问题:

    bool activated = false;
    private void tabPage2_Paint(object sender, PaintEventArgs e)
    {
        if (!activated)
        {
            tabControl1_SelectedIndexChanged(null, null);
            activated = true;
        }
    }

我使用该变量是因为 Paint_Event 被多次调用。

于 2013-07-31T09:24:04.727 回答