VB6でできたフォームを表示しないでのLoadをどうしようかと考えることになりました。
Loadイベントの中身をコンストラクタに移動すれば良い気もしますが、
どうにも不安が拭えません。
ということで無理やりこんなメソッドを作りました。
Public Sub LoadHidden(ByRef target As Form)
Dim tempLocation As Point = target.Location
Dim tempStartPosition As FormStartPosition = target.StartPosition
Dim tempShowInTaskbar As Boolean = target.ShowInTaskbar
target.StartPosition = FormStartPosition.Manual
target.ShowInTaskbar = False
target.Location = New Point(-target.Width, -target.Height)
target.Show()
target.Hide()
target.StartPosition = tempStartPosition
target.ShowInTaskbar = tempShowInTaskbar
target.Location = tempLocation
End Sub
動作としては、
画面の外で表示してすぐ消すことでLoadイベントを発生させています。
あらかじめ言っておきますが、
こんなメソッドには頼らない方が望ましいです。
m9(^Д^)プギャー
と思って読むくらいが丁度良いですね。
0 件のコメント:
コメントを投稿