FillPath ...



  • Hallo zusammen, bei folgendem Test-Programm habe ich folgendes Problem. Wenn ich das Programm starte, und das Fenster ziehe, wird ab und zu: FillPath nicht ausgeführt, es wird nur ein roter Kreis angezeigt. Ich arbeite mit VS2008/VS2019

    using System;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Drawing.Drawing2D;

    namespace GraphPa1
    {
    public partial class Form1 : Form
    {
    GraphicsPath myPath = new GraphicsPath();
    public Form1()
    {
    InitializeComponent();
    ResizeRedraw = true;
    }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Rectangle myEllipse = new Rectangle(20, 20, 400, 400);
            myPath.AddEllipse(myEllipse);
            e.Graphics.FillPath(Brushes.Red, myPath);
            Pen myPen = new Pen(Color.Red, 2);
            e.Graphics.DrawPath(myPen, myPath);
        }
    
        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            if ( myPath.IsVisible(new Point(e.X, e.Y)) )
                MessageBox.Show("Drauf ...");
            else
                MessageBox.Show("Daneben ..");
        }
      
    }
    

    }

    Weiss jemand Rat, könnte es an irgendwelchen Synchronisationsproblemen liegen ?



  • Sorry, da ging etwas mit dem Layout durcheinander ...



  • Das hätte ich mir sparen können, folgendes geht:

    private void Form1_Paint(object sender, PaintEventArgs e)
    {
    e.Graphics.FillPath(Brushes.Red, myPath);
    Pen myPen = new Pen(Color.Red, 2);
    e.Graphics.DrawPath(myPen, myPath);
    }

        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            if ( myPath.IsVisible(new Point(e.X, e.Y)) )
                MessageBox.Show("Drauf ...");
            else
                MessageBox.Show("Daneben ..");
        }
    
        private void Form1_Load(object sender, EventArgs e)
        {
            Rectangle myEllipse = new Rectangle(20, 20, 400, 400);
            myPath.AddEllipse(myEllipse);
        }


  • Könnte mir mal jemand erklären wie man hier Quellcode sauber einfügt ?



  • @biter Erzeuge einen Beitrag- Oben in der Befehlszeile über dem Beitrag findet Du </>.
    Zwischen den Tags kannst Du Deinen Code setzen.



  • Danke Martin ! Kann man die selber erstellten Beiträge, wenn sie unten stehen, auch gleich wieder löschen oder ergänzen, modifizieren ?



  • Bei jedem Beitrag hast du rechts unten die "Antworten" und "Zitieren" Links. Daneben die Bewertung und dann ist da dieses um 90° verdrehte "..." Ding. Klick da mal drauf.



  • This post is deleted!


  • Prima !! Danke !!



  • Dann teste es doch gleich mal und editiere deine bisherigen Beiträge und füge passende Code-Tags hinzu.



  • Stelle mich dumm an, kann </> oben und unten nicht einfügen ...



  • @biter
    Das ist kein HTML Tag! 😉

    Klicke mal auf antworten und du bekommst einen Dialog zum Antworten mit einer kleinen Toolbar drin. Der vierte Button von rechts beginnend bei dem Smily ist dein gewünschter Button. Der Button liegt direkt rechts neben der Combobox.

    Einfach den kompletten Code markieren, auf den Button clicken und gut iss.



  • This post is deleted!



Log in to reply