Johny Bravo Johny Bravo - 1 year ago 153
C# Question

Full screen windows form but with title bar

I am following this article,

This makes my windows form to go full screen but it also hides Title bar.

I want to hide task bar but like to have my title bar.

" targetForm.FormBorderStyle = FormBorderStyle.None;" hides my title bar but removing this shows task bar so is there anyway to hide task bar and keep title bar in windows app? Thanks

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace myClasses

public class WinApi
[DllImport("user32.dll", EntryPoint = "GetSystemMetrics")]
public static extern int GetSystemMetrics(int which);

public static extern void
SetWindowPos(IntPtr hwnd, IntPtr hwndInsertAfter,
int X, int Y, int width, int height, uint flags);

private const int SM_CXSCREEN = 0;
private const int SM_CYSCREEN = 1;
private static IntPtr HWND_TOP = IntPtr.Zero;
private const int SWP_SHOWWINDOW = 64; // 0x0040

public static int ScreenX
get { return GetSystemMetrics(SM_CXSCREEN); }

public static int ScreenY
get { return GetSystemMetrics(SM_CYSCREEN); }

public static void SetWinFullScreen(IntPtr hwnd)
SetWindowPos(hwnd, HWND_TOP, 0, 0, ScreenX, ScreenY, SWP_SHOWWINDOW);

/// <summary>
/// Class used to preserve / restore state of the form
/// </summary>
public class FormState
private FormWindowState winState = FormWindowState.Normal;
private FormBorderStyle brdStyle = FormBorderStyle.Sizable;
private bool topMost;
private Rectangle bounds;

private bool IsMaximized = false;

public void Maximize(Form targetForm)
if (!IsMaximized)
IsMaximized = true;
targetForm.WindowState = FormWindowState.Maximized;

targetForm.FormBorderStyle = FormBorderStyle.None;
//targetForm.TopMost = true;

public void Save(Form targetForm)
winState = targetForm.WindowState;
brdStyle = targetForm.FormBorderStyle;
topMost = targetForm.TopMost;
bounds = targetForm.Bounds;

public void Restore(Form targetForm)
targetForm.WindowState = winState;
targetForm.FormBorderStyle = brdStyle;
targetForm.TopMost = topMost;
targetForm.Bounds = bounds;
IsMaximized = false;

Answer Source

You can set it to FormBorderStyle.FixedToolWindow;, than only the taskbar is hidden.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download