C# 如何初始化选项卡的项?

C# 如何初始化选项卡的项?,c#,events,tabs,C#,Events,Tabs,我有一张有两个标签的表格。我可以选择初始化后查看的选项卡,每次初始化tab2后我都需要一些初始代码: public partial class SetupComponent : Form { public SetupComponent(bool tab2) { InitializeComponent(); if (tab2) { this.tabControl1.SelectedTab = tabPage2;

我有一张有两个标签的表格。我可以选择初始化后查看的选项卡,每次初始化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\u SelectedIndexChanged

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


如何管理它?

我使用Paint\u事件管理此问题:

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

我之所以使用这个变量,是因为Paint_事件被多次调用。

之前我做了一个变通,先循环每个选项卡页面来初始化每个页面,然后将选项卡设置回第一个页面。对不起,我没有收到你的问题,如果tab2=true,你想在UI中选择tapPage2吗?@Mohammad:是的。但在显示tabPage2时,也要更改tabControl1_SelectedIndex的代码。