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

わんくま同盟

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

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


(過去ログ 35 を表示中)
■17398 / )  Re[3]: MaskedTextBoxの誤動作について
□投稿者/ れい (505回)-(2008/04/23(Wed) 13:53:15)
No17384 (みそおでん さん) に返信
> >>今回は、MaskedTextBoxでの誤動作を確認しましたので、確認および回避策を頂きたく、投稿させていただきました。
>>
>>不具合だって自信があるなら
>>MSDNフォーラム: http://forums.microsoft.com/msdn-ja/default.aspx
>>VisualStudioフィードバック: https://connect.microsoft.com/VisualStudioJapan
>>に報告すればいいじゃん。
>
> ごめんなさい。
> 勝手な先入観ですが、報告するよりもこちらに質問をした方が、解決の可能性があるかと思い投稿させていただきました。
> 他の方にも同じ現象が起こっているのか確認したかったというのも理由の一つですが…

バグではありませんね。
変な使われ方が多いので、言葉で括ると問題になりますが、
本来の意味での「仕様」です。

KeyDownやMouseDown、KeyUpなどのイベント中に
モーダルダイアログを表示させたり、DoEventsなどを呼んだ場合、
さまざまな不具合が生じます。

メッセージ処理中にメッセージループをまわすことで生じるこの不具合は、
仕組み上どうにも避けがたい、仕様です。
MaskedTextBox以外でも、さまざまなコントロールで
いろいろな問題が起きます。

どんなイベント中なら安全にモーダルダイアログを表示できるかは、
公式なドキュメントが無いのでわかりません。
(VB5?の時にはあったと思うのですが、今は見つからない。)

Button.Click、Timer.Tickなど、いくつかの決まりきったイベントでは
私の経験上は大丈夫ですが、本当のところは知りません。
ソースを確認する気にもなりません。

回避策は、特定のイベント処理中以外はモーダルダイアログを表示したり、DoEventsを使用しないことです。



返信 編集キー/


管理者用

- Child Tree -