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

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

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

Re[6]: MessageBoxの表示判定


(過去ログ 25 を表示中)

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

■11632 / inTopicNo.1)  MessageBoxの表示判定
  
□投稿者/ かざん (4回)-(2007/12/19(Wed) 13:46:54)

分類:[VB.NET/VB2005] 

2007/12/19(Wed) 13:47:32 編集(投稿者)
こんにちは、かざんです。
環境:	WindowsXPPro
	VB.NET2003
	Oracle 10g

とあるフォームにて、if文の条件式で、そのフォーム内の命令により何らかのMessageBoxが表示されているかどうかで
分岐したいと考えています。
これは不可能でしょうか。
可能でしたら、そのやり方を教えてください。
よろしくお願い致します。

引用返信 編集キー/
■11634 / inTopicNo.2)  Re[1]: MessageBoxの表示判定
□投稿者/ れい (318回)-(2007/12/19(Wed) 14:25:36)
No11632 (かざん さん) に返信
> とあるフォームにて、if文の条件式で、そのフォーム内の命令により何らかのMessageBoxが表示されているかどうかで
> 分岐したいと考えています。

MessageBoxを表示するときにフラグをたてるのが普通だとおもいます。

FindWindowとかで探しても可能ですが、手間がかかります。
ライブラリの都合などでいつ表示されるかわからないのなら
FindWindowがよいと思います。


引用返信 編集キー/
■11647 / inTopicNo.3)  Re[2]: MessageBoxの表示判定
□投稿者/ かざん (5回)-(2007/12/19(Wed) 16:08:20)
> MessageBoxを表示するときにフラグをたてるのが普通だとおもいます。
>
> FindWindowとかで探しても可能ですが、手間がかかります。
> ライブラリの都合などでいつ表示されるかわからないのなら
> FindWindowがよいと思います。

ご返答ありがとうございます。
れいさんの返答をヒントに試行錯誤をしてみたのですが、うまく出来ませんでした。

Enterキーを押すと入力内容を送信されるイベントがあるのですが、入力内容に誤りがあると
MessageBoxでエラーメッセージを表示するフォームを作っています。
つまりいつMessageBoxが表示されるかは定まっています。
しかし、Enterキーを押してMessageBoxを閉じようとすると、MessageBoxが閉じられた瞬間また同じMessageBoxが
表示されてしまいます。
これをどうにかしたく、通常時と、MessageBoxが表示されてから閉じられるまでの間を分岐すればいいと思いました。
どのようにすればよいでしょうか。
ご教授ください。
よろしくお願い致します。
引用返信 編集キー/
■11650 / inTopicNo.4)  Re[3]: MessageBoxの表示判定
□投稿者/ れい (323回)-(2007/12/19(Wed) 16:13:53)
No11647 (かざん さん) に返信
> Enterキーを押すと入力内容を送信されるイベントがあるのですが、入力内容に誤りがあると
> MessageBoxでエラーメッセージを表示するフォームを作っています。

イベントによってはMessageBoxでメッセージループをまわしてはいけないものがあります。
どんなクラスのなんというイベントでしょうか?
引用返信 編集キー/
■11653 / inTopicNo.5)  Re[4]: MessageBoxの表示判定
□投稿者/ かざん (6回)-(2007/12/19(Wed) 16:24:50)
2007/12/19(Wed) 16:34:41 編集(投稿者)
No11650 (れい さん) に返信
> イベントによってはMessageBoxでメッセージループをまわしてはいけないものがあります。
> どんなクラスのなんというイベントでしょうか?

クラス名が分からないのですが、KeyUpイベントです。

-------------------------------------------------------------------------------------

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'キーイベントをフォームで受け取る
        Me.KeyPreview = True
        'KeyUpイベントハンドラを追加
        AddHandler Me.KeyUp, AddressOf Form1_KeyUp
    End Sub

    Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As KeyEventArgs)
        'Enterキーを押したとき
        If e.KeyCode = Keys.Enter Then
            [送信またはエラーメッセージの分岐]
        End If
    End Sub

-------------------------------------------------------------------------------------

簡潔に書くとこのような感じです。

引用返信 編集キー/
■11654 / inTopicNo.6)  Re[5]: MessageBoxの表示判定
□投稿者/ れい (325回)-(2007/12/19(Wed) 16:27:40)
No11653 (かざん さん) に返信
> ■No11650 (れい さん) に返信
>>イベントによってはMessageBoxでメッセージループをまわしてはいけないものがあります。
>>どんなクラスのなんというイベントでしょうか?
>
> クラス名が分からないのですが、KeyUpイベントです。

ならダメです。
そこでMessageBox.Showするものではありません。

どうしても、というならいろいろがんばればできなくは無いと思いますが、
違う方法を考えるのをオススメします。

引用返信 編集キー/
■11655 / inTopicNo.7)  Re[6]: MessageBoxの表示判定
□投稿者/ かざん (7回)-(2007/12/19(Wed) 16:32:40)
No11654 (れい さん) に返信
> ならダメです。
> そこでMessageBox.Showするものではありません。
>
> どうしても、というならいろいろがんばればできなくは無いと思いますが、
> 違う方法を考えるのをオススメします。

そうなんですか。
分かりました、別の方法を考えてみます。
ありがとうございます!

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


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

このトピックに書きこむ

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

管理者用

- Child Tree -