- - PR -
ブレークポイント停止時のフォーム
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-06-20 02:05
VB6で例えばファイルから読み込んだ内容を順次TextBoxにセットする、という処理に対して適当なところにブレークポイントを設定してデバッグ実行した場合、ブレークポイントで停止状態であってもウィンドウを切り替えることでフォーム上のTextBox等の状態を(スクロール等の操作は無理でも)とりあえず確認することができましたが、VB2005ではいわゆる応答なし状態になってしまうようで気軽に確認ができません。
また、同じくVB6で外部アプリケーションを起動して終了待ち(同期実行)させたかった場合、CreateProcessやWaitForSingleObjectといったAPI関数を駆使していたのが、VB2005ではMicrosoft.VisualBasic.Interaction.Shellメソッドで簡単に実現できるようだったので便利だな〜と思っていたのですが、こちらもやはり起動元フォームが応答なし状態になってしまい、(同期実行なので操作できないのはいいのですが)起動元フォームの描画(?)が行われずに真っ白になるのがちょっと気になります。 あまりたいしたことではないのですがこれらの現象に関して何かよい回避策や代替案がありましたら教えてください。 よろしくお願いいたします。 | ||||
|
投稿日時: 2006-06-25 13:37
Vista 対応をしていて思ったのですが、
だんだんと“行儀の悪い行い”が制限されています。 周りでも「**の時はできたのに」という声を聞くのですが、 どういう仕組みでできていて、 なぜできなくなったのかを知れば、 何が行儀が悪いのか、 なぜ行儀が悪いのか、 わかってきます。 わかってくれば、どうでも良くなってきます。 読み込んだものの確認なら、 ウォッチ式で、 ウインドウを切り替えなくてもできますよね。 Microsoft.VisualBasic 名前空間が、 なんのために用意されているのかを知れば、 他の方法もありますから、 「だから、なに?」 と、思うのですが。。。 | ||||
|
投稿日時: 2006-06-25 15:28
.NET はあまり使ったことがないので、以下、勘違いしたことを書くかもしれませんが、たしかに言われて見れば不思議ですね。ブレークポイントを仕掛けた場所は、ボタンなどがクリックされたといった UI のスレッドでしょうか? この挙動は VB のほうが特殊な部類に入るのだと思います。普通にフレームワークを作ったら、UI スレッドがブレークポイントで止まってしまいますから、フォームの再描画などもされないはずですが、VB だとちゃんと再描画されますし、TextBox の内容の更新もされますね。 VB だと、ボタンが押されたりすると、有無を言わさずにイベントプロシージャーを別スレッドで呼ぶような仕組みになっているんでしょうかね。VB で「呼び出し履歴」を見てもボタンのイベントなどは見えないですし。余計な親切のような気もしないではないですが、ちょこちょこっと使うには便利ですね。でもやっぱり余計なお世話すぎるような。 #以下、後で追加。 ここでの VB とは、.NET ではない VB のこと(VB6 など)のことです。 -- unibon {B73D0144-CD2A-11DA-8E06-0050DA15BC86} [ メッセージ編集済み 編集者: unibon 編集日時 2006-06-25 15:30 ] | ||||
|
投稿日時: 2006-06-25 21:44
Jitta様、unibon様、ご回答ありがとうございます。
Windowsアプリケーションのメッセージ処理構造上、イベントハンドラ内にブレークポイントを設定したらUIが更新されないのも当然だとは思うのですが、VB6ではステップ実行しながらUIの確認ができていたのが何かと便利だったもので…。 VC++でMFCを使用したWindowsアプリケーションの開発経験もあるので、やはりVB6がかなり特殊だったのですね。 最初の投稿で申し上げた通り、何か方法があれば…といった程度の質問でしたので特にないようでしたら別にこだわりはありません ![]() | ||||
|
投稿日時: 2006-06-25 21:58
コマンド ウィンドウから、Form.TopMost = true の状態にして、 Application.DoEvents メソッドを叩くことで確認はできます。(確認しました) # そのような手間をかけるよりは、「式ウォッチ」 などを利用した方が良いとは思いますが、 # レイアウトを見る時には、使えるかもしれませんね... (そんな機会はないかも) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1