oɔɯǝɹ oɔɯǝɹ - 1 year ago 126
C# Question

How to create a form with a border, but no title bar? (like volume control on Windows 7)

In Windows 7, the volume mixer windows has a specific style, with a thick, transparent border, but no title bar. How do i recreate that window style in a winforms window?

volume mixer

I tried setting Text to string.Empty, and ControlBox to false, which removes the titlebar, but then the border also disappears:

border disappears

Answer Source
form.Text = string.Empty;
form.ControlBox = false;
form.FormBorderStyle = FormBorderStyle.SizableToolWindow;

For a fixed size window, you should still use FormBorderStyle.SizableToolWindow, but you can override the form's WndProc to ignore non-client hit tests (which are used to switch to the sizing cursors):

protected override void WndProc(ref Message message)
    const int WM_NCHITTEST = 0x0084;

    if (message.Msg == WM_NCHITTEST)

    base.WndProc(ref message);

If you want to really enforce the size, you could also set MinimumSize equal to MaximumSize on the form.

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