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

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

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

モジュールでのメッセージボックス表示

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

■94091 / inTopicNo.1)  モジュールでのメッセージボックス表示
  
□投稿者/ aaa (1回)-(2020/03/12(Thu) 11:36:50)

分類:[.NET 全般] 

vb.netの初心者です。
現在、vb6.0で作成されたアプリケーションをvisual studio 2010に移植しています。
vb6.0の標準モジュール内で行われているMsgBoxでのエラーメッセージの表示を、
visual studio 2010のモジュール内で行おうとしましたができません。


エラーメッセージを表示させる方法を教えてください。
よろしくお願いします。


引用返信 編集キー/
■94092 / inTopicNo.2)  Re[1]: モジュールでのメッセージボックス表示
□投稿者/ 魔界の仮面弁士 (2609回)-(2020/03/12(Thu) 11:45:17)
No94091 (aaa さん) に返信
> vb6.0の標準モジュール内で行われているMsgBoxでのエラーメッセージの表示を、
> visual studio 2010のモジュール内で行おうとしましたができません。

コンパイルエラーになるという事ですか?
実行時例外になるということですか?
呼び出しても画面に表示されないという事ですか?


新規作成時のプロジェクトとして、どの形式を選択したのかも教えてください。

Windows サービスや Web アプリで使おうとしているのであれば論外ですが、
コンソールアプリや Windows Forms であれば、MsgBox は問題無く使えるはずです。
標準モジュールを Module 〜 End Module に置き換えたとして、その点は変わりません。
引用返信 編集キー/
■94095 / inTopicNo.3)  Re[2]: モジュールでのメッセージボックス表示
□投稿者/ aaa (2回)-(2020/03/12(Thu) 12:14:03)
No94092 (魔界の仮面弁士 さん) に返信
> 新規作成時のプロジェクトとして、どの形式を選択したのかも教えてください。
>
> Windows サービスや Web アプリで使おうとしているのであれば論外ですが、
> コンソールアプリや Windows Forms であれば、MsgBox は問題無く使えるはずです。
> 標準モジュールを Module 〜 End Module に置き換えたとして、その点は変わりません。



返信ありがとうございます。
windowsフォームアプリケーションを使用しています。
コンパイルはできますが指定したエラーメッセージが表示されないという状況です。
アプリケーション起動時にデバイスとの接続確認を行い、接続されていない場合にエラーメッセージを表示させたいのですが
エラーメッセージが表示されません。

下記のように、モジュールのmain関数内でデバイスオープンに成功したか判定を行い、
失敗した場合にエラーメッセージを表示させようとしています。

Module
Sub Main

...

with Dev1
If Not .OpenSuccess Then
MsgBox(.Dev1Name & "のオープンに失敗しました", vbCritical, "エラー")
End if
...

End Module




引用返信 編集キー/
■94096 / inTopicNo.4)  Re[3]: モジュールでのメッセージボックス表示
□投稿者/ 魔界の仮面弁士 (2610回)-(2020/03/12(Thu) 12:56:06)
No94095 (aaa さん) に返信
> アプリケーション起動時にデバイスとの接続確認を行い、接続されていない場合にエラーメッセージを表示させたいのですが
> エラーメッセージが表示されません。

MsgBox の行が呼び出されていることは、確認済みでしょうか?
該当行にブレークポイントをはって確認してみてください。
(たとえば、スタートアップを Sub Main にしていなかったとか…)


MsgBox が呼び出されているのに表示されていないのであれば、
他のウィンドウの背後に回っていないかを確認してみてください。
たとえば、強制的に最前面表示するために、MsgBoxStyle に対して
vbSystemModal Or vbMsgBoxSetForeground のビットフラグを追加できます。


それでも MsgBox の呼び出しが反応しない場合、同名の自作関数などで
処理が置き換えられていないかを確認してみてください。
VB6 当時だと、App.UnattendedApp = True としてコンパイルされたアプリでは、
MsgBox を呼び出しても画面には何も表示されず、かわりに
メッセージボックスがイベントビューワーへのログ出力に指し変わるという
実装になっていたので、それを再現するためのコードが実装されているのかもしれません。
引用返信 編集キー/
■94098 / inTopicNo.5)  Re[4]: モジュールでのメッセージボックス表示
□投稿者/ aaa (3回)-(2020/03/12(Thu) 13:44:44)
No94096 (魔界の仮面弁士 さん) に返信

> MsgBox の行が呼び出されていることは、確認済みでしょうか?
> 該当行にブレークポイントをはって確認してみてください。
> (たとえば、スタートアップを Sub Main にしていなかったとか…)
>
>
> MsgBox が呼び出されているのに表示されていないのであれば、
> 他のウィンドウの背後に回っていないかを確認してみてください。
> たとえば、強制的に最前面表示するために、MsgBoxStyle に対して
> vbSystemModal Or vbMsgBoxSetForeground のビットフラグを追加できます。
>
>
> それでも MsgBox の呼び出しが反応しない場合、同名の自作関数などで
> 処理が置き換えられていないかを確認してみてください。
> VB6 当時だと、App.UnattendedApp = True としてコンパイルされたアプリでは、
> MsgBox を呼び出しても画面には何も表示されず、かわりに
> メッセージボックスがイベントビューワーへのログ出力に指し変わるという
> 実装になっていたので、それを再現するためのコードが実装されているのかもしれません。



魔界の仮面弁士 さん 返信ありがとうございます。
おっしゃる通り、スタートアップを Sub Main にしていなかったことが原因でした。
アプリケーション設定でSub Mainをスタートアップオブジェクトにできることを知らなかったため、
とても勉強になりました。

ありがとうございました。
解決済み
引用返信 編集キー/
■94099 / inTopicNo.6)  Re[5]: モジュールでのメッセージボックス表示
□投稿者/ aaa (4回)-(2020/03/12(Thu) 13:44:57)
No94098 (aaa さん) に返信
> ■No94096 (魔界の仮面弁士 さん) に返信
>
>>MsgBox の行が呼び出されていることは、確認済みでしょうか?
>>該当行にブレークポイントをはって確認してみてください。
>>(たとえば、スタートアップを Sub Main にしていなかったとか…)
>>
>>
>>MsgBox が呼び出されているのに表示されていないのであれば、
>>他のウィンドウの背後に回っていないかを確認してみてください。
>>たとえば、強制的に最前面表示するために、MsgBoxStyle に対して
>>vbSystemModal Or vbMsgBoxSetForeground のビットフラグを追加できます。
>>
>>
>>それでも MsgBox の呼び出しが反応しない場合、同名の自作関数などで
>>処理が置き換えられていないかを確認してみてください。
>>VB6 当時だと、App.UnattendedApp = True としてコンパイルされたアプリでは、
>>MsgBox を呼び出しても画面には何も表示されず、かわりに
>>メッセージボックスがイベントビューワーへのログ出力に指し変わるという
>>実装になっていたので、それを再現するためのコードが実装されているのかもしれません。
>
>
>
> 魔界の仮面弁士 さん 返信ありがとうございます。
> おっしゃる通り、スタートアップを Sub Main にしていなかったことが原因でした。
> アプリケーション設定でSub Mainをスタートアップオブジェクトにできることを知らなかったため、
> とても勉強になりました。
>
> ありがとうございました。
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


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

このトピックに書きこむ