2013-07-30 59 views
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 =假,然后点击进入TAB2,tabControl1_SelectedIndexChanged是调用。

但是如果我在SetupComponent期间选择了tab2 = true,我觉得没有可能做这个代码。我发现的所有TabControl1_Events都太早,我找不到匹配的TabPage2_Event。

我该如何管理它?

+0

我之前通过循环遍历每个标签页来初始化每个页面,然后将标签设置回第一个 – Sayse

+0

对不起,我没有得到你的问题,你是否想要在UI中选择tapPage2的情况下tab2 =真的吗? –

+0

@Mohammad:是的。但是也可以在tabPage2被显示时执行tabControl1_SelectedIndexChanged的代码。 –

回答

0

我设法使用Paint_Event这个问题:

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

我使用变量,因为Paint_Event多次调用。

相关问题