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

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

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

Re[4]: フォームをポップアップ時にアクティブにさせない方法


(過去ログ 117 を表示中)

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

■68997 / inTopicNo.1)  フォームをポップアップ時にアクティブにさせない方法
  
□投稿者/ Kat (1回)-(2013/11/28(Thu) 09:51:43)

分類:[VB.NET/VB2005 以降] 

VisualStdio2005 使用言語はVBです。

NotifyIconを使用し、タスクトレイに常駐させるシステムがあります。
30分毎にとあるデータベースの中を見てデータが存在した場合に
お知らせフォームをポップアップさせているのですが、
ポップアップ時にポップアップフォームがアクティブになってしまい
Word等で日本語入力途中の文字が確定されてしまいます。
表示処理の中で「Me.Activate()」の記述があり消してみても駄目でした。

ポップアップフォームを最前面に表示し、アクティブにさせない方法はあるのでしょうか?
ご存知の方いらっしゃいましたらアドバイス宜しくお願い致します。

'現在の記述
Private Sub Form_Load
    Me.Close()
End Sub

Private Sub FormClosing
    Me.Visible = False
    Timer1.Enabled = True    'タイマースタート
End Sub

Private Sub Timer1_Tick
    Dim iRet As Integer

    iRet = DataChk    'データがあるかチェック(0以外はデータ有り)

    'データがあった場合フォームを表示
    If iRet <> 0 Then
        Timer1.Enabled = False    'タイマーストップ

        Me.Visible = True
        Me.Activate()    'ここを消しても駄目でした
    End If
End Sub

引用返信 編集キー/
■69000 / inTopicNo.2)  Re[1]: フォームをポップアップ時にアクティブにさせない方法
□投稿者/ Hongliang (132回)-(2013/11/28(Thu) 10:14:05)
FormのShowWithoutActivationプロパティをオーバーライドして、trueを返すようにすればどうでしょうか。

// 通知だけでよくて、何十秒かで自動的に閉じるのでいいなら、NotifyIconのShowBalloonTipを使ってもいいかも。
引用返信 編集キー/
■69002 / inTopicNo.3)  Re[2]: フォームをポップアップ時にアクティブにさせない方法
□投稿者/ Kat (2回)-(2013/11/28(Thu) 10:53:01)
No69000 (Hongliang さん) に返信
> FormのShowWithoutActivationプロパティをオーバーライドして、trueを返すようにすればどうでしょうか。
>
> // 通知だけでよくて、何十秒かで自動的に閉じるのでいいなら、NotifyIconのShowBalloonTipを使ってもいいかも。

Hongliang様
回答ありがとうございます。
> FormのShowWithoutActivationプロパティをオーバーライドして、trueを返すようにすればどうでしょうか。
ほぼ望みどおりの動作となりましたが、最前面に表示することが出来ません。
Me.TopMost = True
の記述を入れてしまうとアクティブになってしまいます。
解決方法ご存知でしょうか?


引用返信 編集キー/
■69007 / inTopicNo.4)  Re[3]: フォームをポップアップ時にアクティブにさせない方法
□投稿者/ Hongliang (133回)-(2013/11/28(Thu) 13:32:23)
Form::Showの代わりにWin32APIのShowWindow関数を使い、SW_SHOWNOACTIVATEを指定すればどうでしょうか。
引用返信 編集キー/
■69089 / inTopicNo.5)  Re[4]: フォームをポップアップ時にアクティブにさせない方法
□投稿者/ Kat (3回)-(2013/12/03(Tue) 13:30:25)
No69007 (Hongliang さん) に返信
> Form::Showの代わりにWin32APIのShowWindow関数を使い、SW_SHOWNOACTIVATEを指定すればどうでしょうか。

Hongliang様
回答ありがとうございます。

APIを使用することにより実現することが出来ました。
非常に助かり感謝しております。
ありがとうございました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -