• ベストアンサー

FOAMRESIZEについて。

FOAMのRESIZEの使い方について教えてほしいのですが、 フォームの中にテキストボックスがあるとして、 「フォームのサイズを変更すると、それにあわせてテキストボックスの大きさが変わる」という物はできたのですが、 それを最小化すると、RESIZEが働いてしまってエラーがでてしまいます。 フォームの大きさで判断してエラーを回避できないかと、やってみましたが、 うまくいきませんでした。 このエラーについての回避の方法があるならば 教えてくれませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.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 としてしまえば、よいと思います。

mutuzi
質問者

お礼

細かく何パターンもありがとうございます! 最大化とかの状態も、見れるんですね。 いろいろあるので試してみようと思います。 長文レスありがとうございました。

その他の回答 (1)

  • Masato_a
  • ベストアンサー率21% (13/60)
回答No.1

Sub .... On Error Goto ErrH: テキストボックスのサイズ更新コード ErrH: End Sub エラーがでたら・・・という大胆なコーディングで回避できます。

mutuzi
質問者

お礼

回答ありがとうございます。 エラーがでたら飛ばしてしまえばいいわけですね。 参考になります。 ありがとうございました。

関連するQ&A