web-dev-qa-db-ja.com

Windows Formを任意の画面解像度に合わせる方法は?

私はVS 2008でC#を使用しています。以下のコードは私には機能しません。私のフォームは、1024 x 768の解像度で設計されました。

クライアントのラップトップの解像度は1366 x 768です。この問題を解決するために、フォームロードイベントで以下のコードを設定します。

this.Location = new Point(0, 0);
this.Size = Screen.PrimaryScreen.WorkingArea.Size;

しかし、フォームは画面解像度ごとにサイズ変更されず、フォームの下部が非表示になったり切り取られたり、スクロールバーが表示されません

この問題を解決する方法はありますか?構文を教えてください。前もって感謝します

34
shamim

最大化を開始できませんか?

をセットする System.Windows.Forms.Form.WindowStateプロパティからFormWindowState.Maximized

32
ppiotrowicz

プログラムでフォームサイズを設定する場合は、フォームのStartPositionプロパティをManualに設定します。そうしないと、フォーム自体の配置およびサイズ変更アルゴリズムがユーザーの邪魔になります。これが、質問で言及されている問題を経験している理由です。

例:元のサイズと画面の作業領域のサイズの中間のサイズにフォームのサイズを変更する方法を次に示します。また、フォームを作業領域の中央に配置します。

public MainView()
{
    InitializeComponent();

    // StartPosition was set to FormStartPosition.Manual in the properties window.
    Rectangle screen = Screen.PrimaryScreen.WorkingArea;
    int w = Width >= screen.Width ? screen.Width : (screen.Width + Width) / 2;
    int h = Height >= screen.Height ? screen.Height : (screen.Height + Height) / 2;
    this.Location = new Point((screen.Width - w) / 2, (screen.Height - h) / 2);
    this.Size = new Size(w, h);
}

WindowStateFormWindowState.Maximizedに設定するだけでは、復元されたウィンドウのサイズは変更されません。そのため、ウィンドウは最大化されている限り見栄えがよくなりますが、復元してもウィンドウのサイズと場所が間違っている可能性があります。したがって、ウィンドウを最大化して開く場合でも、サイズと場所を設定することをお勧めします。

おそらく最大化されたフォームが役立ちます、またはフォームのロード時に手動でこれを行うことができます:

コードブロック

this.Location = new Point(0, 0);

this.Size = Screen.PrimaryScreen.WorkingArea.Size;

そして、アンカーで遊んで、フォーム内の子コントロールがフォームの新しいサイズに自動的に収まるようにします。

お役に立てれば、

10
Yoko Zunna

フォームプロパティを最大化状態で開くように設定します。

this.WindowState = FormWindowState.Maximized;
7
Bhavik Goyal
int h = Screen.PrimaryScreen.WorkingArea.Height;
int w = Screen.PrimaryScreen.WorkingArea.Width;
this.ClientSize = new Size(w , h);
5
mehrdad

あなたは単にウィンドウの状態を設定することができます

this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
4
Niranjan singh

ur windowsフォームにAutoscroll = trueを設定するだけです(良い解決策ではありませんが便利です)。

パネルも試してください(Autoscroll property = true

3
K_Bhosale

ウィンドウは常に最大化して起動するように指示できます...同じ結果が得られるはずです...このように:this.WindowState = FormWindowState.Maximized;

追伸タスクバーの高さを差し引くこともできます(これはお勧めしません)。

2
PedroC88