回答:下記のコメントセクションを参照してください。この質問が重複とマークされた後、適切なSOの回答を投稿できないようです...C#winform appをフルスクリーンにリサイズする方法とそれが正しく機能していますか?
背景:WinformsとC#Visual Studio 2012、.net 4.5をWin7でテストします。
希望の動作:「最大化」ボタンでは、タスクバー以外の画面全体を使用するようにメインフォームのサイズを変更し、タイトル/キャプションバーを保持します。
これは複製ではありません。この質問は、他の質問の解決策として掲示されているにもかかわらず、なぜこのコードがうまく機能しないのかについてです。ありがとう!
Iは、以下のフォームメソッド符号化:タスクバーを最大にすることは、所望のように目に見えるままであるが、ここに示されているように、メインフォームが(メインフォームの右下を全体予想領域を行い使用していない残念ながら後
private void HSBmainForm_Resize(object sender, EventArgs e)
{
// On clicking Maximize, sender is main form, but event is "Empty" so useless...
// Instead, look at window state and adjust form size as appropriate
switch(WindowState) {
case FormWindowState.Maximized: {
var workArea = Screen.FromControl(this).WorkingArea; // supposedly, screen size minus taskbars and bound toolbars, in pixels
Debug.WriteLine(workArea);
// Nope, eliminates desired caption bar and min/max/etc buttons: FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; // no border when maximized
this.MaximumSize = new System.Drawing.Size(workArea.Width, workArea.Height); // supposedly, pixels
} break;
case FormWindowState.Normal:
this.MaximumSize = new System.Drawing.Size(1600, 900); // Minimum workable size for layout of app's forms
break;
};
base.OnLocationChanged(e); // process the event in base class (actually performs the resize)
}
何が悪いと思いますか?予め
おかげで、 よろしく、デイブ
PS:この試験では、Windows画面解像度が1823 X 978及び ワークエリアレポート{X = 79、Y = 0、幅= 1744、高さ= 963を報告}デバッグ出力。
PPS:上記の結果は、最初に最大化をクリックした後です。最小化は常に期待通りに機能します。 2回目以降の最大化のクリックは正しく機能し、画面全体を使用します。アイデア?基本クラスのイベントプロセッサを2回呼び出しても、最初の試行では機能しません。
フォームを最大化しないと、タスクバーなしで画面全体のワークスペースが使用されますか? – IllidanS4
これは重複していません。この質問は、他の質問やSO以外の場所への解決策として掲示されているにもかかわらず、なぜこのコードがうまく機能しないのかについてです。ありがとう! –
@ IllidanS4、希望の動作を見てください、ありがとう! –