- ベストアンサー
FOAMRESIZEについて。
FOAMのRESIZEの使い方について教えてほしいのですが、 フォームの中にテキストボックスがあるとして、 「フォームのサイズを変更すると、それにあわせてテキストボックスの大きさが変わる」という物はできたのですが、 それを最小化すると、RESIZEが働いてしまってエラーがでてしまいます。 フォームの大きさで判断してエラーを回避できないかと、やってみましたが、 うまくいきませんでした。 このエラーについての回避の方法があるならば 教えてくれませんか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
どもども 田吾作7です。 方法は大きくわけて2つ、細かくわけて3つあります。 (↑ややこしい?) 1-1 On Error Goto ErrLabel これはMasato_aさんが述べてた通り、「エラーが起こったら、指定のラベルに飛びなさい。」という命令です。 1-2 On Error Resume Next 使い方は先に挙げた1-1と似ていますが、ラベルを必要としません。エラーが起きても、次の行以降をどんどん実行行きます。この命令を書く時は、予期せぬエラーが起こったときに、臨時で書くことが多いですが、覚えると多様する癖がついてしまいます。いざホントにエラーが起きても、エラー個所が気付かなくなってしまう時がありますので、注意しましょう。 [On Error Resume Next]は[On Error Goto 0]を実行することで、エラーメッセージを復旧することができますので、覚えておいてください。 2-1 WindowStateを見る Resize時のイベントに[Debug.Pring Me.WindowState]を記述してみてください。 0・1・2のいずれかが出力されると思います。 これは[vbNormal][vbMinimized][vbMaximized]という定数の値です。(ヘルプで参照してください。) Windowの現在の表示状態を得ることが出来るので、 Private Sub Form_Resize() If .WindowState = vbMinimized Then Exit Sub ~サイズ変更ロジック~ End Sub としてしまえば、よいと思います。
その他の回答 (1)
- Masato_a
- ベストアンサー率21% (13/60)
Sub .... On Error Goto ErrH: テキストボックスのサイズ更新コード ErrH: End Sub エラーがでたら・・・という大胆なコーディングで回避できます。
お礼
回答ありがとうございます。 エラーがでたら飛ばしてしまえばいいわけですね。 参考になります。 ありがとうございました。
お礼
細かく何パターンもありがとうございます! 最大化とかの状態も、見れるんですね。 いろいろあるので試してみようと思います。 長文レスありがとうございました。