私はログイン時にフルスクリーンモードに設定されたWinFormsアプリケーションを持っています。フルスクリーンモードですが、タスクバーをカバーしません
私の問題は、Windowsのタスクバーもカバーしていることです。私はアプリケーションがタスクバーをカバーしないようにしています。
どうすればいいですか?
私はログイン時にフルスクリーンモードに設定されたWinFormsアプリケーションを持っています。フルスクリーンモードですが、タスクバーをカバーしません
私の問題は、Windowsのタスクバーもカバーしていることです。私はアプリケーションがタスクバーをカバーしないようにしています。
どうすればいいですか?
これはおそらくあなたが望むものです。これは、タスクバーを隠すことなく '最大化された'ウィンドウを作成します。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
Left = Top = 0;
Width = Screen.PrimaryScreen.WorkingArea.Width;
Height = Screen.PrimaryScreen.WorkingArea.Height;
}
}
の最大化は、あなたが(Greeboにより示唆されるように)探しているものでない場合は、タスクバーの位置とサイズをチェックして、ウィンドウのサイズを自分で計算する必要があります:
http://winsharp93.wordpress.com/2009/06/29/find-out-size-and-position-of-the-taskbar/
すでにWindowState = Maximizedを設定している場合。 FormBorderStyle = Noneを設定していることを確認してください。 Noneを設定すると、タスクバーをカバーします。
私はそれをhereに答えていました:
私は記述のうち、左の一つ - I'dは、最大化ボタンをオフに。そのプロパティを再びオンにすることをテストしたとき、タスクバーが再び表示されました。明らかに、ユーザーがアプリケーション画面以外のものを見ることを望まない、キオスクスタイルのアプリケーションを作成している最大化ボタンが必要ないと仮定しています。正確には私が期待していたものではありませんが、私は思っています。
私はこの問題を抱え、Jeffの助けによって解決しました。まず、windowstateをMaximizedに設定します。 MaximizeBoxを無効にしないでください。そして、あなたはMaximizeBoxは、あなたがプログラムでそれを行う必要があります無効にしたい場合:
private void frmMain_Load(object sender, EventArgs e)
{
this.MaximizeBox = false;
}
FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
ずに試してみて、コメント行のような:私はそれを行う
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
Left = Top = 0;
Width = Screen.PrimaryScreen.WorkingArea.Width;
Height = Screen.PrimaryScreen.WorkingArea.Height;
}
}
方法は、このコードを経由する:
this.MaximizedBounds = Screen.FromHandle(this.Handle).WorkingArea;
this.WindowState = FormWindowState.Maximized;
これは、上記のソリューションが通常のWindowsの状態変更の動作を許可していないため、これが承認された回答になるはずです。 – mohnston
private void frmGateEntry_Load(object sender, EventArgs e)
{
// set default start position to manual
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
// set position and size to the Form.
this.Bounds = Screen.PrimaryScreen.WorkingArea;
}
複数の画面がある場合は、MaximizedBoundsの位置をリセットする必要があります。
Rectangle rect = Screen.FromHandle(this.Handle).WorkingArea;
rect.Location = new Point(0, 0);
this.MaximizedBounds = rect;
this.WindowState = FormWindowState.Maximized;
私は説明がうまくありませんが、これは私がタスクバーをカバーしないwinformsを最大化またはフルスクリーンするために使用したコードです。それが役に立てば幸い。 ^^
private void Form_Load(object sender, EventArgs e)
{
this.Height = Screen.PrimaryScreen.WorkingArea.Height;
this.Width = Screen.PrimaryScreen.WorkingArea.Width;
this.Location = Screen.PrimaryScreen.WorkingArea.Location;
}
このコード専用の回答についての説明は、おそらく有益でしょう。 – Pyves
これは、フルスクリーンの定義のようなものです。おそらく、あなたは代わりにそれを "最大化"に設定したいでしょうか? –
@エビル:あなたはあなたの質問に答えていたはずです。 – Sung
@The E:これに設定しました.windowstate = maximized ... – user698065