C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: 画面アクティブ化について


(過去ログ 16 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■6035 / inTopicNo.1)  画面アクティブ化について
  
□投稿者/ zono (4回)-(2007/07/30(Mon) 16:48:02)

分類:[VB.NET/VB2005] 

メイン画面のフォームロード後にActivatedイベントで確認ダイアログを表示する処理を作成しています。
Activatedイベントを受け取り確認ダイアログを表示し、消去すると、メイン画面がアクティブ化されません。
エクスプローラー等の画面を開いた状態で起動するとメイン画面がエクスプローラーの後に隠れてしまいます。
ダイアログ消去後に他の画面の後に隠れず、メイン画面をアクティブ化する方法はありますか??
申し訳ございませんがよろしくお願い致します。

参考の為にソースのサンプルを記述致します。(簡略化して記述しています)

  Dim flg = False

'フォームロード処理
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

'アクティベイト処理
Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Activated

If flg = False Then

flg = True

MsgBox("")
End If
End Sub

※フォームロード中にダイアログを表示しないのはディスプレイ上に両方の画面を表示することが目的です。

※またMsgbox()の後にme.Activatedを記述しても一度他の画面に隠れてしまいます。(すぐアクティブ化され前に移動しますが・・・)
引用返信 編集キー/
■6039 / inTopicNo.2)  Re[1]: 画面アクティブ化について
□投稿者/ まどか (349回)-(2007/07/30(Mon) 16:59:48)
> ※フォームロード中にダイアログを表示しないのはディスプレイ上に両方の画面を表示することが目的です。

初回表示時ということなら、Shownイベントでやってみてください。

引用返信 編集キー/
■6052 / inTopicNo.3)  Re[2]: 画面アクティブ化について
□投稿者/ zono (5回)-(2007/07/30(Mon) 22:04:45)
No6039 (まどか さん) に返信
>>※フォームロード中にダイアログを表示しないのはディスプレイ上に両方の画面を表示することが目的です。
>
> 初回表示時ということなら、Shownイベントでやってみてください。
>
返答ありがとうございます。
shownイベントとありますが、formクラスにshownイベントが実装されていないと思うのですが
どうなのでしょうか??
MSDN等を見てもshownイベントがでてこなかったので・・・
私の間違いであったら申し訳ございません。。

引用返信 編集キー/
■6054 / inTopicNo.4)  Re[3]: 画面アクティブ化について
□投稿者/ ダッチ (149回)-(2007/07/30(Mon) 22:33:35)
> shownイベントとありますが、formクラスにshownイベントが実装されていないと思うのですが
> どうなのでしょうか??
> MSDN等を見てもshownイベントがでてこなかったので・・・
> 私の間違いであったら申し訳ございません。。

Form.Shown イベント
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.form.shown(VS.80).aspx

Shown イベントは Visual Basic 2005 から使用できます。
zono さんの環境は Visual Basic 2003 以前だからだと思います。

Shown イベントの変わりに Application.Idle イベント
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.application.idle(VS.80).aspx

で置き換えることができると思います。

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        AddHandler Application.Idle, AddressOf Form1_Idle
    End Sub

    Private Sub Form1_Idle(ByVal sender As System.Object, ByVal e As System.EventArgs)
        RemoveHandler Application.Idle, AddressOf Form1_Idle
        MessageBox.Show("Form1_Idle")
    End Sub



引用返信 編集キー/
■6069 / inTopicNo.5)  Re[4]: 画面アクティブ化について
□投稿者/ zono (6回)-(2007/07/31(Tue) 12:54:02)
No6054 (ダッチ さん) に返信
> > shownイベントとありますが、formクラスにshownイベントが実装されていないと思うのですが
>>どうなのでしょうか??
>>MSDN等を見てもshownイベントがでてこなかったので・・・
>>私の間違いであったら申し訳ございません。。
>
> Form.Shown イベント
> http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.form.shown(VS.80).aspx
>
> Shown イベントは Visual Basic 2005 から使用できます。
> zono さんの環境は Visual Basic 2003 以前だからだと思います。
>
> Shown イベントの変わりに Application.Idle イベント
> http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.application.idle(VS.80).aspx
>
> で置き換えることができると思います。
>
> Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
> AddHandler Application.Idle, AddressOf Form1_Idle
> End Sub
>
> Private Sub Form1_Idle(ByVal sender As System.Object, ByVal e As System.EventArgs)
> RemoveHandler Application.Idle, AddressOf Form1_Idle
> MessageBox.Show("Form1_Idle")
> End Sub
>
>
返答ありがとうございます。
本日検証してみたら実現できました。
まどか様、ダッチ様色々と教えて頂いて
本当にありがとうございました。


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -