쫌 지난 질문인데 답변이 안달려있어 답변을 써보려고 해요~
완전로드(~^^) 이벤트는 아니지만 다른 방법 ( or 꽁수) 으로 비슷하게나마 구현한적이 있는데요
100% 맞는건 아니지만 어느정도 비슷하게나마 사용할 수 있지 않을까 싶네요....
1. 동적으로 Form의 Activated Event를 등록 및 해제
아시다 싶이 Activated 라는 이벤트가 Form Load가 된뒤에 처음 발생을 하고,
이 후에 활성화 될때마 다 Event가 발생을 하지요
그래서 Load Event Handler에서 Activated 를 등록해주고
Activated Event Handler (정확이 하자면 Delegate) 에서 해제를 해주는 겁니다.
ex) Private Sub Form1_Load(........)
AddHandler Me.Activated, AddressOf Form_Activated
End Sub
Private Sub Form_Activated(..........)
RemoveHandler Me.Activated, AddressOf Me.Form1_Activated
.......
이 후 처리.....
End Sub
2. Timer를 이용
Private Sub Form1_Load(.........)
AddHandler Timer1.Tick, AddressOf Me.Timer1_Tick
Timer1.Enabled = True
End Sub
Private Sub Timer1_Tick(..........)
Timer1.Enabled = False
RemoveHandler Timer1.Tick, AddressOf Me.Timer1_Tick
Form_Activated()
End Sub
Private Sub Form_Activated()
.......
이 후 처리.....
End Sub
% 동적으로 Event를 등록안해줘도 됩니다. Timer를 시작 및 중지만 시켜줘도 되거든요 %
테스트 해보면 알겠지만 1번과 2번은 폼의 완전한 로드(?)에서의 차이가 보입니다.
1번 방법의 문제는 '완전히 로드된 후에...' 가 아닌
타이틀 바가 보이면서 Activated Event를 발생한다는 것 입니다.
다시 말해 Form_Activated() 에서 BreakPoint로 잡아두면 폼의 타이틀만 보인다는 거죠
2번은 폼이 완전히 로드된(제대로 보인뒤에) 후에 Timer Event가 발생합니다.
Timer는 Thread를 이용하기 때문에 그런것 이겠지요.....
3번째 방법은
뭐 그냥 Thread를 이용해야겠죠.....
윽... 별거 아닌데 글만 길어졌네요
할 일이 없어 시간 보낼겸 해서 그런거니 이해해 주세요~~~^^