1

標準フォーム サイズが 1024x768 のアプリケーションを VB6 で構築しています。ただし、一部のユーザーはより高い解像度を利用できるため、画面を最大化したときにプログラムが見栄えがするようにしたいと考えています。フォーム上の要素のサイズをまったく変更したくありませんが、すべてを再センタリングしたいと考えています。私が見ているように、2つのオプションがありますが、どちらもあまり好きではありません。

  • _real_ 方法で、各要素を他の要素との関係でフォームに配置する動的コードを作成することで、サイズに関係なく常に適切に再配置します。
  • すべての要素を 1024x768 の PictureBox に配置し、フォームのサイズが変更されるたびにそれを画面の中央に配置する、より簡単ですが安っぽい方法です。

私は最初のものは好きではありません。また、最初のアイデアの背後にあるアイデアはもっと好きですが、永続性の問題があります。戻っていくつかの要素を変更する必要がある場合、多くの再配置コードを書き直さなければなりません。2 つ目は、フォームのグリッド構造を表示できるという、VB6 が提供する優れた機能の 1 つを失うという、ちょっと似たような問題があります。

魔法の解決策を知っている人はいますか?

私は現在、PictureBox に傾倒しています。これは、ポジショニング コードをすべて書き、間違いなく書き直すという見通しが憂鬱だからです。ここでの問題は、フォームにこれらの 50 以上の要素が既にあることですが、それらを PictureBox に配置する必要があります。常に作成したいと思われる配列を作成せずにコピーして貼り付けることができますが、それらすべての名前を変更する必要があります...だから私の2番目の質問は、既存の要素をPictureBox にフォームしますか?

みんな、ありがとう!

4

3 に答える 3

3

フリーランチはありません。サイズ変更時に VB6 アプリケーションを「見栄えよく」したい場合は、動的サイズ変更ロジックをイベントに記述する必要があります。Form_Resizeそうしないと、他の人が述べているように、左上隅にすべてが詰め込まれた大きな灰色の領域ができます。中心に置くことPictureBoxはそれほど良いことではありません。いずれにせよ、非標準的でアマチュアっぽく見えます。

私はいくつかの VB6 アプリケーション用にこのタイプのコードを書きました。書くのが少し面倒なのは同意しますが、難しいことではありません。次のことを考える必要があります。

  • ボタンの配置 - フォームの右下の座標が変更され、ボタンは通常、右側に沿って配置されるか、右下隅を基準にして配置されます。
  • 表示コントロールのサイズ変更 - リストボックス、複数行のテキスト ボックス、ドロップダウン リストなどを広げることができます。コードは、これらをフォームの新しい幅/高さのパーセンテージにするか、すべてを配置した後に残ったものを埋めるために拡大するかを決定できます。そうしないと。後者のアプローチの方がうまくいくと思いますが、アプリケーションによって異なります。
  • コントロールとフォームの端の間の余白、およびコントロール自体の間の余白。この値を保持するために「Gutter」という名前の値を定義し、一連のボタンを右下隅に対して水平方向に配置する場合などに、必要に応じて適用します。
  • ボタンやラベルのサイズを変更しないでください。位置を変更するだけです。
  • フォントのサイズを変更しないでください。

「アンカー」タイプのプロパティにより、このタイプのコードは VB.NET では不要になります。少し考えてみると、いくつかのプロパティがこのロジックを処理できる場合、同じことを行うために必要なコード行はそれほど複雑ではないことがわかります。最初のコントロールの配置とサイズが決まったら、そのコントロールの上、左、幅、高さに基づいて他のコントロールを配置し、フォームを横切るだけです。

正しく理解すれば、実際に努力する価値があることがわかると思います。

于 2011-03-04T15:31:03.537 に答える
2

要素が相互に関連してサイズや位置を変更しない場合は、おそらくPictureBoxアプローチを選択します。それが本当に悪いことだとは思いません。

コントロールのサイズ変更または再配置が必要な場合は、サイズ変更コードを大量に作成します (以前はそうしていたことを神は知っています)。

于 2011-03-03T20:32:43.313 に答える
1

http://www.functionx.com/vbnet/Lesson08.htm

コントロールコンテナを見てください。コメントで指摘したように、あなたが説明した2番目の解決策はアドホックではなく、整理されています。UI はコンテナに関するものです。

ただし、PictureBox にうんざりしているのはあなたの言うとおりです。

于 2011-03-03T20:36:06.200 に答える