• ベストアンサー

フォームの設定について

ソフト表示画面のサイズを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

  • フォントサイズを大きめに設定しておくと、設定画面等で文字が消えて読めない

    windows vistaでフォントサイズを大きくしておきますと あらゆるソフトの設定画面などの文字が、半分消えて見えなかったり、 時にはOKボタン等も隠れて消えて、押せなかったりと、とても不便です。 フォントサイズを標準に戻すには再起動しないといけないので、尚大変です。 再起動しなくても、消えて読めない部分を、何とか表示させる裏技などはありませんか? ノートPCなので、文字サイズを常に大きめに設定しておかないと、目が辛いので・・・ 宜しくお願いいたします。

  • フォームのアクティブと非アクティブ表示について

    Form1からForm2を表示するという処理を以下のようにコーディングしてみました。 **Form1.frm*** Private Sub Command1_Click() Form1.Hide Form1.vbModal Form1.Show End Sub **Form2.frm*** Private Sub Command1_Click() Unlaod Me End Sub 画面にエクスプローラ等のウィンドウが表示されているときに、Form2を表示させようとすると非アクティブ状態で表示されてしまいます。 また、Form2をUnloadするとForm1が表示されるのですが、その際に、Form1のタイトルと、タスクバーに表示されているボタンが反転した後非アクティブ状態になってしまいます。 フォームは常にアクティブで表示させたいのですが、どうすればよいのでしょうか?

  • Accessで入力用全画面Formと検索用子Formを表示させたい。

    こんにちは。 Accessで入力用Formと検索用の小さなFormを表示させたいと思っています。 具体的な動作は下記です。 入力用Form(親)からコマンドボタンを押して、マスタ一覧の別のForm(子)が起動します。 子Form一覧からレコードを選択すると、子フォーム終了と同時に親フォームへ値を設定します。 動作自体は問題ありませんが、 やりたいのは親ホームは全画面として、子フォームをその上に大きさを指定した 小さなウィンドウとして表示させたいと考えています。 親フォームを全画面で、子フォームを起動すると子フォームでサイズ指定(DoCmd.MoveSize)しても 全画面として起動されます。 親フォームを元のサイズとして、子フォームを起動するとサイズ指定が有効になり 画面の大きさは一応指定されます。 しかし、運用のディスプレイサイズがまちまちなので、親画面は全画面(DoCmd.Maximize)として起動し、 その上に小さなフォーム画面を乗せたいです。 色々と試しましたが、上手く行きません。 もし良い方法をご存知の方ご教授頂きたく宜しくお願い致します。

  • 用紙設定

    知り合いから聞かれたのですが私では解りませんでした。  ワードで用紙の設定をはがきサイズにしたり、いろいろ 触ってたらしいのですが、それ以来ワードを起動させる度に、 表示される用紙がはがきサイズになってしまうとの事でした。 ファイルボタン→ページ設定画面でサイズを確認したら、 A4サイズにはなっているらしいのですが・・・。

  • フォームを画面の下側ぴったりに表示したい。

    ディスプレイの表示(1024*768)で作成しているのですが、 フォームを画面の下側にぴったりと表示したいと思っています。 仮に、フォームの高さを100と設定して、 Screen.Heghtにて画面の高さを取得して、 Form1.Top = Screen.Heght-100 と設定して表示しましたが、ぴったりといかず、フォームの下の部分が タスクバーに隠れていました。 タスクバーの高さを更に計算すればぴったりといくとおもうのですが、 タスクバーの高さを取得することは可能でしょうか? ダメだったら手作業(ベタな値)で計算するしかないのでしょうか?

  • フォームの生成と破棄

    C++Builder5.0の質問です。 フォーム(Form1)に複数のボタンを配置し、メニュー画面としました。 ボタンを押すと他の画面(Form2~5)に移れるようにしました。 ボタンには TForm2 *Form2 = new TForm2(this); Form2 -> Show(); Close(); ↑ Form2からForm5まであります。 と記述し、 Form2から5には「戻る」ボタンを設け、Form1(メニュー画面)に 戻れるようにしました。 Form2~5の「戻る」ボタンには TForm1 *Form1 = new TForm1(this); Form1 -> Show(); Close(); と記述しました。 また、全てのフォームのFormCloseイベントには自分のフォームを破棄するために delete Form2; 等と記述しました。 この状態でメニュー画面からForm2~5を開いたり閉じたりすることを 繰り返すと、不定期的に動作が固まってしまいます。 この原因はなんでしょうか。 Ver.はBCB5.0(Pro.)です。 御回答をよろしくお願いします。

  • 送信フォームが動きません・・・どこが違ってますか?

    ・http://www.ahref.org/cgi/formmailer/を使用しています。 ・メールアドレスは実際には自分のアドレスを設定しており、cgiのファイル名は、form.cgiです。 ・送信ボタンを押すと、確認画面がでず、メールも送信されず、画面がform.cgiのソースが表示された画面に切り替わってしまいます。 以上よろしくお願いします。 cgi初心者なので、不足な情報があるかと思いますので、 ぜひお知らせください。

    • 締切済み
    • CGI
  • 開く前のフォームを開かないようにしたい

    現在、VB2010で、Windowsアプリを作っています。 Form1から、ボタンで画面遷移を行っているのですが、 Form2でデータを作成する前にForm3に移動しないように MessageBoxで画面表示をさせてからMe.Close()を試したのですが、 Form1の方が閉じてしまい、Closeしない場合はForm3が 立ち上がってしまいます。 何とか、Form1はそのままでForm3が立ち上がらないように したいのですが、いい方法はないでしょうか?

  • フォームがアクティブでない時にボタンを表示させないようにするには?

    VB2005を使用しています。どうぞよろしくお願いします。 質問の内容ですが、ボタンが一つあるFormとExcelのウインドウが同じ画面内に表示されている時、Formがアクティブの時はボタンが表示され、Excelのウインドウがアクティブの時はFormのボタンが消えるようにしたいのですがどうしても分かりません。 どうぞよろしくお願いします。

  • Delphi のフォーム操作について

    Delphi のフォーム操作について 初めて質問させてもらいます。 Delphiで、ファイルをコピーしレジストリに登録したりするソフトウェアのインストーラーのようなもの、たとえばInstallShieldのようなものを作りたいと思ったのですが、 ”次へ”ボタンを押したときにウィンドウは消えず位置も変えないで 線の上側のインストール先を選択させる画面から”現在コピーしています...”のような画面に移り変わるようにするにはどうすればいいのでしょうか。 Button1を ”次へ”ボタン としたとき procedure TForm1.Button1Click(Sender: TObject); begin form1.Destroy; begin Form2.Show; end; end; という書き方をすれば似たようなことができますが、いわゆるInstallShieldのようにはなりません。 どのように表示させればこの場合はベストなのでしょうか。 2ヶ月ほど前から少しVB.NETをいじり、最近Delphiをはじめ、 いろいろ検索してみて http://www2.big.or.jp/~osamu/Delphi/Tips/key.cgi?key=14#0295.txt こちらの記事を見つけ、参考にしましたが使いこなせませんでした。 VB.NETでも同じようなことを試みましたが、参考記事が見つからず 上で書いたような表示方法をしない形で書きました。 環境は Turbo Delphiを使用しています。 どうかご教示ください。

専門家に質問してみよう