DOBON.NET DOBON.NETプログラミング掲示板過去ログ

スプラッシュスクリーンについて

環境/言語:[VS2005 Win2K Framework2.0]
分類:[.NET]

2006/03/22(Wed) 09:36:44 編集(投稿者)

いつも参考にさせてもらってます。

スプラッシュスクリーンを表示し、アプリケーションを起動しているのですが
スタートフォームのLoadイベントで起動条件をチェックし、起動条件がなりたって
いない場合は、警告メッセージを表示し終了するようにしています。
その際、メッセージ表示後終了する際に、エラーが発生します。
内容は、
 「破棄されたオブジェクトにアクセスできません。
  オブジェクト名 'SplashScreen1' です。」 と表示されます。
ステップ実行してもどこで例外が発生しているのかつかめません。

Private Sub frmMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

'起動条件チェック
if (起動条件) = False then
Me.close
Application.Exit
Exit Sub
end if

End Sub

スプラッシュスクリーンはいつ破棄されているのでしょうか?

よろしくお願いします。
■No14940に返信(ppさんの記事)
> スプラッシュスクリーンを表示し、アプリケーションを起動しているのですが
> スタートフォームのLoadイベントで起動条件をチェックし、起動条件がなりたって
> いない場合は、警告メッセージを表示し終了するようにしています。

Load イベントではやらない方が良いと思います。

> その際、メッセージ表示後終了する際に、エラーが発生します。
> 内容は、
>  「破棄されたオブジェクトにアクセスできません。
>   オブジェクト名 'SplashScreen1' です。」 と表示されます。
> ステップ実行してもどこで例外が発生しているのかつかめません。

TopMost プロパティを true にしていませんか?

___________________________________________________________________________________
じゃんぬ - Microsoft MVP for Visual Developer C#
  C#, VB.NET 入門  http://jeanne.wankuma.com/
  じゃんぬねっと日誌 http://blogs.wankuma.com/jeanne/
解答ありがとうございます。

■No14942に返信(じゃんぬねっとさんの記事)
> Load イベントではやらない方が良いと思います。

LoadイベントでなくTimerを使用し、同じような処理を行っても
同様な例外が発生しています。
他にどこでチェックをかければよいのでしょうか?

> TopMost プロパティを true にしていませんか?

TopMost プロパティはFalseになっています。
ppさん,こんにちは。

Form.Closeメソッドのヘルプにもありますが,Application.Idleイベントを使うのがよいのでは?

Loadイベントで
    AddHandler Application.Idle, AddressOf Application_Idle
して,
    Public Sub Application_Idle(ByVal sender As Object, ByVal e As EventArgs)
        RemoveHandler Application.Idle, AddressOf Application_Idle
        If xxxxxxx Then
            Me.Close()
            Application.Exit()
        End If
    End Sub
■No14945に返信(YASさんの記事)
> ppさん,こんにちは。
>
> Form.Closeメソッドのヘルプにもありますが,Application.Idleイベントを使うのがよいのでは?
>
> Loadイベントで
> AddHandler Application.Idle, AddressOf Application_Idle
> して,
> Public Sub Application_Idle(ByVal sender As Object, ByVal e As EventArgs)
> RemoveHandler Application.Idle, AddressOf Application_Idle
> If xxxxxxx Then
> Me.Close()
> Application.Exit()
> End If
> End Sub
>

YASさんありがとうございます。ヘルプをみて早速実行したら、例外が発生することなく
終了することができました。ありがとうございました。
解決済み!
私のサイトで解説しているのですが、どなたもご存じないようですね...。

DOBON.NET .NET Tips - スプラッシュウィンドウを表示する
http://dobon.net/vb/dotnet/form/splashwindow.html
解決済み!
>私のサイトで解説しているのですが、どなたもご存じないようですね...。

申し訳ありません。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板