2011-09-20 18 views
48

Jak mogę usunąć niebieskie obramowanie, które znajduje się na wierzchu formularza okna? (Nie znam jej nazwy dokładnie).Usuwanie paska tytułu w Windows Forms

+2

nazywa się TitleBar i prawdopodobnie można go ukryć, zmieniając właściwość stylu ramki na brak ramki lub brak. –

Odpowiedz

103

Można ustawić właściwość FormBorderStyle sobie równych w projektancie, lub w kodzie:

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 
+3

Jest literówka. To 'FormBorderStyle' :) – ty812

10

Ustaw FormsBorderStyle Formularza do None.

Jeśli tak, to od Ciebie zależy, jak zaimplementować funkcję przeciągania i zamykania okna.

55

jeśli przez Blue Border thats on top of the Window Form znaczy titlebar, zestaw Formy ControlBox nieruchomość do false i Text nieruchomość na pusty ciąg („”).

oto fragment:

this.ControlBox = false; 
this.Text = String.Empty; 
+6

Twoje rozwiązanie ma przewagę nad ustawianiem stylu obramowania na None, ponieważ ... pozostawia granicę nietkniętą :) +1 – Spook

+0

I jakoś, jeśli zrobisz to przez 'FormBorderStyle.None' to wyłącza cię od rysowanie na formularzu w jakiś sposób (OnPaint ustawia obraz w obrazku, który ma 'Dock' ustawiony na' Fill'), działał bez zarzutu, dopóki nie zmieniłem ustawienia obramowania z 'FormBorderStyle.None', ale w ten sposób rysunek nadal działa dla mnie :) – DrCopyPaste

+0

@ Spook: Idę do nowego wątku, aby zapytać dokładnie to :) – Jack

8
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None 
16

dodać także ten kawałek kodu do formularza aby mogła ona być przyciągany nadal.

Wystarczy dodać go tuż przed konstruktora (metoda, która wywołuje InitializeComponent()


private const int WM_NCHITTEST = 0x84; 
private const int HTCLIENT = 0x1; 
private const int HTCAPTION = 0x2; 

/// 
/// Handling the window messages 
/// 
protected override void WndProc(ref Message message) 
{ 
    base.WndProc(ref message); 

    if (message.Msg == WM_NCHITTEST && (int)message.Result == HTCLIENT) 
     message.Result = (IntPtr)HTCAPTION; 
} 

Ten kod jest od: https://jachman.wordpress.com/2006/06/08/enhanced-drag-and-move-winforms-without-having-a-titlebar/

teraz pozbyć pasku tytułowym ale nadal mają granicę połączyć kod z drugiej odpowiedzi:

this .ControlBox = false;

this.Text = String.Empty;

tej linii:

this.FormBorderStyle = FormBorderStyle.FixedSingle;


umieścić te 3 linie kodu w przypadku OnLoad formularza i trzeba mieć miły „pływający” formularza, który jest przeciągany z cienkiej granicy (wykorzystanie FormBorderStyle.None jeśli chcesz żadnej granicy).

Powiązane problemy