Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Linie aus Picturebox löschen
Rico913
myCSharp.de - Member



Dabei seit:
Beiträge: 93

Themenstarter:

Linie aus Picturebox löschen

beantworten | zitieren | melden

Bin grad am Verzweifeln und hab schon Einiges durchprobiert aber leider ohne Erfolg.

Ich habe eine PictureBox als Overlay über eine andere Picturebox gelegt.
In diese lasse ich Linien zeichnen.

Über ein Datagridview kann der User zum nächsten Bild wechseln. Dort sollen aber die Linien vom vorherigen Bild (Overlay) gelöscht werden. Und genau das passiert nicht - egal was ich probiere Refresh/Invalidate / graphics.clear die Linien bleiben.

Dispose funktioniert zwar, aber das Overlay ist dann ja bekanntermaßen weg, Kann ich dieses eventuell reaktivieren?

Könnt ihr mir bitte helfen?
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15.928

beantworten | zitieren | melden

Du zeigst genau 0 Code.
>> [Hinweis] Wie poste ich richtig?
private Nachricht | Beiträge des Benutzers
Rico913
myCSharp.de - Member



Dabei seit:
Beiträge: 93

Themenstarter:

beantworten | zitieren | melden

Sorry, stimmt natürlich:


        private void Form1_Load(object sender, EventArgs e)
        {
            pictureBox_Image.SizeMode = PictureBoxSizeMode.Zoom;
            pictureBox_Overlay.SizeMode = PictureBoxSizeMode.Zoom;
            pictureBox_Overlay.Parent = pictureBox_Image;
            pictureBox_Overlay.Location = new Point(0, 0);
        }


private void panel1_draw_horizontal(object sender, PaintEventArgs e)
        {
            foreach (MessKoordinaten_Test Messlinie in Messung_Test)
                Messlinie.Draw(e.Graphics, Messen_Text_Rundung);
        }


public void Draw(Graphics gr, int Messen_Text_Rundung)
    {
        Pen pen = new Pen(Color.Green, 1);
        Font font = new Font("Arial", 8, FontStyle.Bold);
        pen.StartCap = LineCap.SquareAnchor;
        pen.EndCap = LineCap.RoundAnchor;
        gr.DrawLine(pen, MousePosition_Start_X_picBox_Lst, MousePosition_Start_Y_picBox_Lst, MousePosition_Ende_X_picBox_Lst, MousePosition_Start_Y_picBox_Lst);
        int Point_Text_X = ((MousePosition_Ende_X_picBox_Lst - MousePosition_Start_X_picBox_Lst) / 2) + MousePosition_Start_X_picBox_Lst - 10;
        int Point_Text_Y = MousePosition_Start_Y_picBox_Lst - 15;
        Laenge_Lst = Math.Round(Laenge_Lst, Messen_Text_Rundung);
        gr.DrawString(Laenge_Lst.ToString(), font, Brushes.Black, new Point(Point_Text_X, Point_Text_Y));
      }


        private void Messung_horz_Click(object sender, EventArgs e)
        {
            Check_MessenEnde = false;
            pictureBox_Image.MouseDown += new MouseEventHandler(pictureBox1_MouseDown);
            pictureBox_Overlay.Paint += new PaintEventHandler(panel1_draw_horizontal);
            Click_First = true;
        }


        private void Image_Delete_Measurement()
        {
           ????
        }
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Rico913 am .
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15.928

beantworten | zitieren | melden

Du beachtest leider immer noch nicht die Tipps aus den anderen Beiträgen, wo Du nach Hilfe gefragt hast.
DataGridview mit anderem DataGridview verknüpfen
Wie kann ich in einer PictureBox die 2te-Nte Linie Zeichnen, ohne dass die erste gelöscht wird?

Es ist ziemlich entmutigend wenn Du von Helfern Tipps bekommst und Du diese einfach offenbar ignorierst; diese aber eigentlich helfen sollen Dein Ziel zu erreichen.
Da musst Dich dann nicht wundern, wenn die Leute Dir aus dem Gedanken, dass Du es eh nicht beachtest, keine Antworten mehr bekommst.

Die Idee ist ja eigentlich, dass Du eine Bitmap erzeugst und diese der PictureBox zuweist - und entsprechend auch wieder entfernen kannst.
Sehe ich hier nirgends.
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4.389

beantworten | zitieren | melden

Lies dir den Abschnitt "Die Verwendung von PictureBox" (bes. "Wenn es so einfach geht, wo ist der Haken?") in [Tutorial] Zeichnen in Windows-Forms-Programmen (Paint/OnPaint, PictureBox) (3. Beitrag) durch.
private Nachricht | Beiträge des Benutzers
Rico913
myCSharp.de - Member



Dabei seit:
Beiträge: 93

Themenstarter:

beantworten | zitieren | melden

Lieber Abt,
ohne die Tipps der Helfer wäre ich noch nicht so weit gekommen, wie bisher!!
Da ich zur Zeit in Elternzeit bin habe ich ungefähr 1 bis 2 Stunden, wenn überhaupt, am Tag Zeit für mein Projekt. Da dieses, wie du sicherlich schon in Erfahrung gebracht hast, mehrere Baustellen hat, arbeite ich mal an der Problemlösung und mal an dem Problem.
Googlen, Recherchieren und einarbeiten dauert eine Weile und ich lerne noch. Ich stehe sozusagen am Anfang und bin dankbar! dass es dieses Forum gibt. Nur weil ich ein Thema nicht zeitnah umsetze, heißt das noch lange nicht, dass ich das Thema bzw. die Hilfestellung nicht auf dem Schirm habe. Von daher finde ich:

Zu unterstellen, ich würde die Tipps nicht umsetzen, sehr entmutigend!!!

Eben bspw. Dank der Hilfe bzw. des Hinweises von JimStark habe ich das Thema der 2ten Linie gelöst! Und wie so oft ist ein neues Problem aufgetaucht, eben das die vielen gezeichneten Linien nicht mehr gelöscht werden können :(
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Rico913 am .

Moderationshinweis von Abt (17.07.2020 - 15:20)

Bitte keine Full Quotes
[Hinweis] Wie poste ich richtig?

private Nachricht | Beiträge des Benutzers