2012-07-03 3 views
2

Windows Mobile 응용 프로그램을 개발 중입니다. 사용자에게 양식 (로딩 화면)이 표시된 후 무언가를하고 싶습니다.양식이 표시된 후 조치를 수행하십시오.

정상적으로, 나는 Form.Shown 이벤트를 가지고 있지만 .net Compact Framework v3.5에서는이 이벤트를 찾을 수 없습니다.

누구나 Shown 이벤트에 해당하는 내용이나 간단한 해결 방법을 알고 있습니까? 내가 그것을 도울 수 있다면 나는 내 자신의 멀티 스레딩을하고 싶지 않다.

+0

어떤 양식에 대한 Load 이벤트? –

+0

@NikhilAgrawal 나는 폼이 표시되기 전에 일어난다 고 생각합니다. –

+0

내가 당신을 위해 해결책을 찾고 몇 가지 대답을 편집 할 수 있는지 알게 될 것입니다. 내가 적절한 솔루션을 찾을 수 있다면 그것을 숨길 것이다. – KreepN

답변

3

내가 생각할 수있는 유일한 방법은 양식이 표시 될 때 약간의 해킹이 될 수 있습니다. 기본 컨트롤이 있으면 포커스를 받게됩니다. 포커스 이벤트는 폼이 표시되기 전에 초기로드 중에 실행되지만 표시 될 때 두 번째로 실행됩니다. 첫 번째 Activates로 설정된 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을 사용하고 있습니다. 탭이 0과 같은 한 기본값인지 확인하십시오. 또한 form_load 이벤트가 끝날 때 몇 밀리 초 지연이있는 원샷 타이머를 사용했습니다. –

+0

.net Compact Framework v3.5를 실행 중이고 "탭이 0과 같은 한"기본 값인지 확인하는 방법 " –

관련 문제