Frage

Ich bin ein unerfahrener Programmierer, völlig neu in der Programmierung für Windows.

Ich schreibe ein kleines Programm, das ich immer wollte. Sein geschrieben C # .net Framework. atleast das ist, was ich denke, ich tue. All das Gerede über Rahmen und .nets, Windows Forms, und win32 api hat alles hat mich wirklich verwirrt ..: (

sowieso habe ich einfaches Form-Objekt.

 Form f = new Form() ;
 f.Text = "" ;   
 f.ControlBox =false ;

Wie die alle Grenzen auf dem Formular mit einer Ausnahme Seiten entfernen? Wie in, sollten die Seitengrenzen gehen, soll aber die obere Grenze bleiben

Formborderstyle hat nichts für diese

Auch wie lösen Sie Menschen, derartige Probleme selbst, ohne zu fragen? Blick auf anderen Code? liest ein Buch ein? eine bestimmte Website? Ich habe gegoogelt, aber es hat nicht nichts aufdrehen.

War es hilfreich?

Lösung

Gidday,

Das ist unmöglich, leider - man die ganze Grenze zu entfernen, aber, und dann selbst auf dem Formular ziehen und verwendet OnMouseDown, OnMouseUp und OnMouseMove Ihre eigenen Schleppen zu tun ...

Ein solches Problem selbst zu lösen, würde ich auf verschiedenen Wegen suchen, das Problem verbal darstellen (zB. „Randlose Form“, „individuelle Grenzen auf winform“, etc) und verbringen Sie ein wenig Zeit für sie googeln. Als mein Chef klug sagt, die Produktivität ist nicht immer darüber, wie viel Code, den Sie schneiden, sondern auch über das, was man lernen kann.

EDIT: Wie der populäre Ausdruck geht, „Google weiß alles“ - stehen die Chancen, dass, wenn Sie ein wenig Zeit damit verbringen, googeln und man kann immer noch nichts finden, dann wahrscheinlich nicht gelöst ist, oder es ist sehr sehr selten. Eine andere Möglichkeit wäre, in ein paar gute Bücher zu investieren, zum Beispiel Windows Forms-Programmierung (oder auch nur die Windows-Programmierung -. Es unglaublich nützlich ist über die zugrunde liegenden Mechanismus von Windows zu wissen, und Dinge wie das, was Sie helfen, wieder zu einem großen Entwickler Ein großer Programmierer ist bei Codierung gut, aber ein großer Entwickler ist gut tatsächlich nützliche Software Aufbau:.)

Andere Tipps

Ich nehme an, Sie haben versucht, FormBorderStyle.FixedSingle? Dies würde nur an der Spitze ein Formular mit einem Rand angezeigt werden soll. Wie auch immer, wenn das nicht der Fall ist, können Sie die Formulare Region eingestellt.

So etwas wie ...

public static void HideBorders(Form form)
{
    Rectangle newRegion = form.Bounds;
    Rectangle formArea = form.Bounds;
    Rectangle clientArea = form.RectangleToScreen(form.ClientRectangle);

    formArea.Offset(form.Location);
    newRegion.Offset(clientArea.X - formArea.X, 0);
    newRegion.Width = clientArea.Width;
    newRegion.Height = (clientArea.Y - formArea.Y) + clientArea.Height;

    form.Region = new Region(newRegion);
}

Was, wie Sie wissen, was zu tun ist? All die Dinge, die Sie erwähnen, Hilfedateien, Web-Foren, Bücher. Die Hauptsache ist, üben, üben, üben. Je mehr Sie etwas tun, desto besser sollten Sie werden.

Ich glaube nicht, dass es tatsächlich möglich ist, genau das zu tun, was Sie beschreiben, da das .NET Framework nur die Zeichnung Ihres Formulars Rand und Titelleiste Windows selbst gehen zu delegieren, die keine Möglichkeit haben, was Sie beschreiben AFAIK.

Statt dessen, was ich tun würde, ist FormBorderStyle.None Verwendung und anschließend alle Fensterdekorationen zeichnen (Titelleiste, Rahmen), die Sie manuell.

Eine Google-Suche für „randlose Form C #“ wird diese Seiten als die drei Treffer auf:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top