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

わんくま同盟

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

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

ツリー一括表示

自動的に消えるメッセージボックス /あおちゃん (19/11/06(Wed) 15:39) #92903
Re[1]: 自動的に消えるメッセージボックス /774RR (19/11/06(Wed) 16:12) #92904
Re[1]: 自動的に消えるメッセージボックス /魔界の仮面弁士 (19/11/06(Wed) 16:53) #92905
  └ Re[2]: 自動的に消えるメッセージボックス /あおちゃん (19/11/06(Wed) 17:47) #92907 解決済み


親記事 / ▼[ 92904 ] ▼[ 92905 ]
■92903 / 親階層)  自動的に消えるメッセージボックス
□投稿者/ あおちゃん (1回)-(2019/11/06(Wed) 15:39:14)

分類:[.NET 全般] 

VB.net で処理などが終わった時に自動的に消えるメッセージボックスを表示しています。

Dim result As DialogResult
result = CreateObject("WScript.Shell").Popup ("〇〇しました。", 1, "")
Debug.WriteLine(result)

これで1秒後にメッセージボックスは自動で消えてくれるのですが、1秒でも長すぎるくらいなので、0.3秒後とか0.5秒後とかにしたいのですが、上記
構文では1秒単位でしか設定できません。
何かよい方法はないでしょうか?
[ □ Tree ] 返信 編集キー/

▲[ 92903 ] / 返信無し
■92904 / 1階層)  Re[1]: 自動的に消えるメッセージボックス
□投稿者/ 774RR (746回)-(2019/11/06(Wed) 16:12:19)
えー普通に自作フォームを ShowDialog するだけの話ぢゃないの?
https://dobon.net/vb/dotnet/form/showform.html

処理が終わったら消したい、のであれば1秒後に消すってのは仕様が違う
どうせ1秒もかからない処理であるならそもそもダイアログ出るってのがウザいと思う
Cursor.Current = Cursors.WaitCursor
で UX 的に十分なのではないかと思う・・・
https://dobon.net/vb/dotnet/form/cursorcurrent.html

[ 親 92903 / □ Tree ] 返信 編集キー/

▲[ 92903 ] / ▼[ 92907 ]
■92905 / 1階層)  Re[1]: 自動的に消えるメッセージボックス
□投稿者/ 魔界の仮面弁士 (2463回)-(2019/11/06(Wed) 16:53:50)
No92903 (あおちゃん さん) に返信
> 1秒でも長すぎるくらいなので、0.3秒後とか0.5秒後とかにしたいのですが、

そういう処理は、そもそも「一定時間後に消す」のではなく、
「処理が終わったら消す」ように実装すべきだと思いますよ。


Popup メソッドについても、本来の使い方としては、
OK/Cancel や Yes/No などをユーザーに問い合わせて、
一定時間操作が無ければ、ボタンが押されたものと見做すようなケースで
使われるものだと思います。(この利用方法では、秒単位での指定で十分なはず)



> 何かよい方法はないでしょうか?

要件次第では、進捗表示のためのメッセージボックスを出すより、
メインフォーム上に Panel でも重ねて、そこにメッセージを表示する方が
扱いやすいかもしれません。Panel の Visible を切り替えるだけで済むので。

処理状況を追跡できる場合は、ProgressBar を使うのも手かも。
[ 親 92903 / □ Tree ] 返信 編集キー/

▲[ 92905 ] / 返信無し
■92907 / 2階層)  Re[2]: 自動的に消えるメッセージボックス
□投稿者/ あおちゃん (3回)-(2019/11/06(Wed) 17:47:14)
ありがとうございます。
Panelを使うことにします。

No92905 (魔界の仮面弁士 さん) に返信
> ■No92903 (あおちゃん さん) に返信
>>1秒でも長すぎるくらいなので、0.3秒後とか0.5秒後とかにしたいのですが、
>
> そういう処理は、そもそも「一定時間後に消す」のではなく、
> 「処理が終わったら消す」ように実装すべきだと思いますよ。
>
>
> Popup メソッドについても、本来の使い方としては、
> OK/Cancel や Yes/No などをユーザーに問い合わせて、
> 一定時間操作が無ければ、ボタンが押されたものと見做すようなケースで
> 使われるものだと思います。(この利用方法では、秒単位での指定で十分なはず)
>
>
>
>>何かよい方法はないでしょうか?
>
> 要件次第では、進捗表示のためのメッセージボックスを出すより、
> メインフォーム上に Panel でも重ねて、そこにメッセージを表示する方が
> 扱いやすいかもしれません。Panel の Visible を切り替えるだけで済むので。
>
> 処理状況を追跡できる場合は、ProgressBar を使うのも手かも。
解決済み
[ 親 92903 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -