• ベストアンサー

フォームの設定について

ソフト表示画面のサイズを300*480に収めたいのですがどのように設定すればいいのか教えてください。また、2つのForm、Form1とForm2 を同時に起動してForm1を上側にForm2を下側にと表示させたいのですが、どのようにすればよろしいか教えてください。ちなみに表示するときは、Form1を起動状態にして、あるボタンを押したらForm2を起動という形にしたいのですが、どのようにすればよろしいですか?

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

  • ベストアンサー
  • Yackn
  • ベストアンサー率42% (12/28)
回答No.2

勘違いしていました。画面上の上下だったんですね。 「使用不可」ということを考えてモーダルなウィンドウににしてみました。微妙にフォームの名前が逆になっていますが、(^^;そんなのは、スタートアップフォームを変えればできるはずです。(プロジェクトのプロパティで変更できます) 以下のようにしてみてはどうでしょうか? フォームを2こ用意してフォーム2にはコマンドボタンを貼り付けてください。以下はソースです。 'フォーム1に書くソース Private Sub Form_Load()   Me.Show   ’フォーム2の場所を決定します。   With Form2     .Top = 0     .Left = 0     .Width = 3000     .Height = 1200   End With ’自分の場所を決定します   With Me     .Top = Form2.Top + Form2.Height     .Left = Form2.Left     .Width = Form2.Width   End With 'ここでフォーム2をモーダル表示します   Form2.Show vbModal End Sub 'フォーム2に書くソース Private Sub Command1_Click()   ’自分を閉じます。   Unload Me End Sub

1976no12ri29
質問者

お礼

ありがとうございます。ほんとうに参考になりました。また機会があれば、よろしくおねがいします。

その他の回答 (1)

  • Yackn
  • ベストアンサー率42% (12/28)
回答No.1

1番目の質問について   Screen.TwipsPerPixelX で画面に対するtwips数を計算してあげればよいのではないでしょうか? ではだめですか? 2番目の質問について フォーム2が下にいるということなので先にフォーム2をスタートアップフォームに指定してフォーム2のロード時に以下のようなコードを書けばよいとおもいます Private sub Form_Load()   Form2.hide Form1.Show vbModeless, Me End Sub ただし、フォーム2がフォーム1のオーナーになっているのでフォーム2の終了時に終了をキャンセルしてHideしてあげる必要があります。 わからないときは追加補足ください。

1976no12ri29
質問者

補足

ありがとうございます。えーっとですね。フォームの位置が画面上で上下に表示させて、フォーム1を起動させて、フォーム2の操作を無効にしておきたいのです。そして、フォーム1のボタンを押したら、フォーム1を終了してフォーム2を有効にさせたいのです。なにかややこしくてすいません。うまく説明ができなくて・・・よろしければお願いします。

関連するQ&A