2012-07-03 46 views
2

我正在開發一個Windows Mobile應用程序,並且在向用戶顯示錶單(加載屏幕)之後我想要做些什麼。顯示錶單後執行操作。

通常,我有一個Form.Shown事件,但使用.net compact framework v3.5,我找不到這個事件。

有誰知道相當於Shown事件或我可以使用一個簡單的解決方法?如果我能幫忙,我不想自己做多線程。

+0

怎麼樣Form Load事件? –

+0

@NikhilAgrawal我相信這是在表單顯示之前發生的。 –

+0

我會看看我是否可以爲你找到解決方法,並在幾個編輯我的答案。如果我設法找到合適的解決方案,我將取消隱藏 – KreepN

回答

3

我能想到的唯一的事情就是有點黑客,當你的表單被顯示時,如果它有一個默認的控件,那麼它會得到焦點。在顯示錶單之前,焦點事件將在初始加載過程中觸發,但會在第二次顯示時觸發。在第一次激活時設置的Activate事件中放置一個布爾值,然後在默認控件Got Focus事件中進行測試。


其他選項是使用定時器。將Interval設置爲10,在Form Load事件結束時啓動它,然後運行啓動特定代碼。

private void Form1_Load(object sender, EventArgs e) 
{ 
    timer1.Start(); 
} 

private void timer1_Tick(object sender, EventArgs e) 
{ 
    timer1.Stop(); 
    //Do something 
} 

每漢斯的評論的一個例子:

public partial class Form1 : Form 
{ 
    public delegate void DoWorkDelegate(); 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     BeginInvoke(new DoWorkDelegate(DoWorkMethod)); 
    } 

    public void DoWorkMethod() 
    { 
     //Do something 
    } 
} 
+0

GotFocus事件沒有再次發射。有什麼我必須做的,以實現這一目標? –

+0

@ Sam它在我的系統上運行,但我在桌面上運行.net 2.0。確保它是默認值,只要tab等於0.另外我在過去使用了一個單次計時器,在我的form_load事件結束時有幾毫秒的延遲。 –

+0

我正在運行.net compact framework v3.5,以及如何「確保它是默認值,只要選項卡等於0」 –