Autor Beitrag
dompfaff23
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 26.08.14 20:08 
Guten Abend,
ich habe mit Informationshilfe aus dem Netz die Ecken eines Buttons abgerundet (siehe nachstehenden Code).
Nun versuche ich zusätzlich einen Rahmen um den Button zu zeichnen - leider ohne Erfolg.
Kann mir jemand auf die Sprünge helfen?
Vielen Dank!
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
        private void btn01_Paint(object sender, PaintEventArgs e)
        {
            int ecke = 35;
            Rectangle r = new Rectangle(00, btn01.Width, btn01.Height);
            System.Drawing.Drawing2D.GraphicsPath gp = new System.Drawing.Drawing2D.GraphicsPath();
            gp.AddArc(r.X, r.Y, ecke, ecke, 18090);
            gp.AddArc(r.X + r.Width - ecke, r.Y, ecke, ecke, 27090);
            gp.AddArc(r.X + r.Width - ecke, r.Y + r.Height - ecke, ecke, ecke, 090);
            gp.AddArc(r.X, r.Y + r.Height - ecke, ecke, ecke, 9090);
            btn01.Region = new Region(gp);
        }


Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Moderiert von user profile iconTh69: Topic aus C# - Die Sprache verschoben am Di 26.08.2014 um 21:28
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4801
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 26.08.14 20:36 
Hallo,

ein Rechteck kannst du entweder mit GraphicsPath.AddRectangle (für die Region) oder aber Graphics.DrawRectangle (mit e.Graphics) zeichnen.
Beachte jedoch, daß dies nur innerhalb der Grenzen des Buttons (ClientRectangle) geht, nicht außerhalb (weil du explizit um geschrieben hattest).
dompfaff23 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 26.08.14 20:51 
Hallo Th69,
danke für die schnelle Antwort.
Leider habe ich nicht präzise formuliert; ich meinte den "abgerundeten" Button mit einem
Rahmen zu versehen und nicht um den Button herum einen Rahmen zu zeichnen.
Für einen Code wäre ich außerordentlich dankbar, denn ich komme aus der Basic-Ecke
und mit C# tu ich mir noch sehr schwer.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 26.08.14 21:18 
Dann mußt du zwischen den runden Ecken auch die geraden zeichnen. GraphicsPath hat dazu eine AddLine Methode.
Immer schön abwechselnd AddArc und AddLine bis du einmal um den Button rum bist. Den letzten AddLine kannst du dir sparen wenn du CloseFigure am GraphicsPath aufrufst. Das verbinden den Startpunkt mit dem Endpunkt des Pfads.


Zitat:
Für einen Code wäre ich außerordentlich dankbar, denn ich komme aus der Basic-Ecke
und mit C# tu ich mir noch sehr schwer.


Hier gehts um das Verhalten von Winforms. Das ist in VB.Net und C# identisch.
dompfaff23 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 27.08.14 14:59 
Hallo Th69,

vielen Dank für Deine Informationen, die mir sehr weiter geholfen haben.
Der Button mir Rahmen funktioniert!! Nachvollziehen kann ich es noch nicht,
da meine Kenntnisse hierfür noch nicht ausreichen - ich arbeite aber daran.

Für Deine Hilfe möchte ich mich vielmals bedanken.

Viele Grüße
dompfaff23