2013-07-30 53 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多次調用。

相關問題