1280x1024 画面用に設計された C# Windows フォーム アプリケーションを作成しました。それは完全にコントロールでいっぱいです。ネットブックで使用するために、同じコード ベースで動作する 1024x600 画面用の「ライト」バージョンを作成する必要があります。これを行う最も簡単な方法は、デザイン ファイルを #ifdef し、ビルド時に選択する変数を定義して複数のビルドを作成することですが、最初のフォームからすべてを継承する 2 番目のプロジェクトをソリューションに含めることをお勧めします。デザイナーを使用して、さまざまなリスト ボックス、テキスト ボックスなどを再配置し、関連性の低い情報を保持するためにいくつかのタブを作成します。Visual Studio 2010 でこれを行う最も簡単な方法は何ですか?
2 に答える
それがControl.Anchor
プロパティの目的です。サイズを変更したいコントロールに設定する必要があります。
MSDNから:
プロパティを使用し
Anchor
て、親コントロールのサイズが変更されたときにコントロールが自動的にサイズ変更される方法を定義します。コントロールをその親コントロールに固定すると、親コントロールのサイズが変更されたときに、固定されたエッジが親コントロールのエッジに対して同じ位置にとどまることが保証されます。コントロールをコンテナの1つまたは複数のエッジに固定できます。たとえば、プロパティ値がとに設定されているを持っている場合、のが
Form
増加するにつれて、の上端と下端までのアンカー距離を維持するために、が引き伸ばされます。Button
Anchor
Top
Bottom
Button
Form
Height
Form
あなたにとって悪いニュースは、迅速で簡単な解決策がないということです. ネットブックやスレートのような小さなフォーム ファクターで作業している場合、2 つの環境間でうまく変換できない特定のユーザー エクスペリエンス要素に注意する必要があります。
そうは言っても、すべてのロジックを含む基本フォームを作成すると、それを画面フォーム ファクターごとに継承し、2 つのフォームを別々に設計できます。
このパスに従うと、デザイナーでイベント ハンドラーをイベントに接続するときに Visual Studio にバグが発生し、親クラスにあるイベント ハンドラーに接続できなくなります。デザイナがクラッシュします。この問題を回避するには、次のようにイベント ハンドラーを手動で接続します。
this.MyButton.Click += new System.EventHandler(this.MyClickEventHandler);
幸運を!