2017-03-04 7 views
-1

イメージを表示し、メインフォームをフェードアウトして開く必要がある別のフォームがあります。 Form1.Show()に到達すると、InvalidOperationExceptionがスローされます。ここに私のコードです:フォームを表示しようとした後にInvalidOperationExceptionがスローされました

Public Class SPLASH 
    Public Declare Auto Function AnimateWindow Lib "user32" (ByVal hwnd As IntPtr, ByVal time As Integer, ByVal flags As Integer) As Boolean 
    Public Enum AnimateStyles 
     Slide = 262144 
     Activate = 131072 
     Blend = 524288 
     Hide = 65536 
     Center = 16 
     HOR_Positive = 1 
     HOR_Negative = 2 
     VER_Positive = 4 
     VER_Negative = 8 
    End Enum 
    Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     AnimateWindow(Me.Handle, 1000, AnimateStyles.HOR_Negative Or AnimateStyles.Blend) 
     Thread.Sleep(2000) 
     Form1.Show() 
    End Sub 
End Class 

私の問題のためのオンライン無修正を見つかりませんでしたし、私はどちらかそれを自分自身を修正することができませんでした。私はドキュメンテーションを見ていますが、AnimateWindow関数が完全に終了するまで待つ必要があるかもしれないと思いますが、どうしたらいいか分かりません。

+0

実際のエラーメッセージが表示されない場合は、手助けするのは難しいです。 –

+0

ところで、 'AnimateWindow'の' time'と 'flags'パラメータは' UInteger'型でなければなりません。 'Declare Function ... Lib'文は下位互換性のために存在するだけで、オンラインで見つかったもののほとんどはVB.NETではなくVB.NETとしか互換性がないため、使用しないでください。 [** DllImport **](https://msdn.microsoft.com/en-us/library/system.runtime.interopservices.dllimportattribute(v = vs.110).aspx)は、これらの日に行く方法です。 C#宣言を探して、オンラインコンバータを使用して変換できます。 –

答えて

-1

回答が見つかりました!

は私が機能

Private Sub Done(ByVal Sender As Object, ByVal Event As System.EventArgs) 
    Dim MainForm As New Form1() 
    MainForm.Show() 
End Sub 

を作成し、私は私のいつものコードを入れた後

Dim pr As New Process 
     pr.EnableRaisingEvents = True 
     AddHandler pr.Exited, AddressOf Done 

前に、次のコードを追加しました。 :)

+0

何ですか?あなたは決して仕事をしないプロセスを作ることはどうでしょうか? –

+0

答えは私が使っていることです:D – Aixiom

関連する問題