2012-01-29 5 views
2

ピクセルを使用する代わりに、C#でフォームのサイズを調整する方法があるのだろうか?たとえば、Form1の幅を画面の75%、高さを80%とします。私はユーザーの画面の解像度を読み込んでそこから調整して少し実験しましたが、私は別のアプローチを探しています。私は別の画面解像度で問題を解決するためにこれをしたいので、私はスクロールバーを使用する必要はありません。これを行う方法はありますか、私はスクロールを保持するだけですか?フォームのx%を塗りつぶす方法はありますか?

+1

このWPFはですか? Windowsフォーム? ASP.NET?あなたが話している技術を指定する必要があります。 C#は単なる言語です。 –

+0

ユーザーの画面が十分でない場合や、表示するデータが多すぎる場合は、スクロールバーとしてスクロールバーを使用する必要があります。だから完全に排除できないので、これのポイントは何ですか?あなたのフォームが画面全体を占めるかどうかをユーザーが選択できるようにします。そうした場合は、タイトルバーに便利な「最大化」ボタンがあります。 –

答えて

1

あなたは使用して、画面の解像度を得ることができます。そこから、あなたは何をしたいの80%を使用することができます

Rectangle rect = Screen.AllScreens[0].Bounds; 
//Maybe you need to use WorkingArea instead of Bounds. 

。詳細情報はこちらhttp://msdn.microsoft.com/en-us/library/system.windows.forms.screen.aspx

+0

はい、間違いなく['Screen.WorkingArea'](http://msdn.microsoft.com/en-us/library/system.windows.forms.screen.workingarea.aspx)を使用します。タスクバー、ドッキングされたウィンドウ/ツールバーなどは除外されます –

2

自動フォームスケーリングの影響を受けないように、Loadイベントを使用します。このように:

protected override void OnLoad(EventArgs e) { 
     var scr = Screen.FromPoint(this.Location); 
     this.Size = new Size((int)(scr.WorkingArea.Width * 0.75), 
          (int)(scr.WorkingArea.Height * 0.80)); 
     this.Location = new Point((scr.WorkingArea.Width - this.Width)/2, 
            (scr.WorkingArea.Height - this.Height)/2); 
     base.OnLoad(e); 
    } 
関連する問題