Jonas Kohl
Jonas Kohl

Reputation: 1142

.NET hide titlebar but keep border

I was wondering how to hide the titlebar of a form but keep the original border, like e.g Dropbox does: screenshot

Thanks in advance!

Upvotes: 8

Views: 2493

Answers (3)

Bitterblue
Bitterblue

Reputation: 14085

// 3rd option (C#)
protected override CreateParams CreateParams
{
    get
    {
        int WS_DLGFRAME = 0x400000;
        CreateParams result = base.CreateParams;
        result.Style &= ~WS_DLGFRAME;
        return result;
    }
}

Upvotes: -1

Smith
Smith

Reputation: 5959

Here is a simple way:

this.ControlBox = false;
this.Text = string.Empty;

If the Form is designed to be a pop-up dialog, you might want to add the following line:

this.ShowInTaskBar = false;

That keeps the Form from appearing in the taskbar.

Upvotes: 1

Jcl
Jcl

Reputation: 28272

Set FormBorderStyle to FormBorderStyle.Sizable or FormBorderStyle.SizableToolWindow and set Text to an empty string, and ControlBox to false

Note that FixedToolWindow won't work, it will remove the border. If you don't want it to be sizable, use SizableToolWindow and add this to the form's codebehind (adding both languages since you don't specify and tagged the question with both):

In vb.net:

Protected Overrides Sub WndProc(ByRef message As Message)               
    If message.Msg = &H84 Then ' WM_NCHITTEST
        message.Result = CType(1, IntPtr)
        Return
    End If    
    MyBase.WndProc(message)
End Sub

In C#:

protected override void WndProc(ref Message message)
{
    if (message.Msg == 0x0084) // WM_NCHITTEST
        message.Result = (IntPtr)1;   
    else base.WndProc(ref message);
}

Upvotes: 8

Related Questions