Draw String, GDI ?

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Draw String, GDI ?

    Hallu. Ich kenne mich mit GDI oder wie es sich nennen mag garnicht aus, und möchte auch nurn String auf der Form haben der sich Problemlos ändern lässt ohne flackern oder sowas.
    Dazu sollte es auch Problemlos auf den beiden Pictureboxen transparent sein.

    Schon mal danke für die Leute die mir da helfen.
    Wenn ich mich recht erinnere ist das überaus kompliziert, eine Zeichnung anzubringen, die mehrere Controls überdeckt. Weil Ownerdrawing drawt immer in ein Control.
    Man kann auch auf den Desktop drawn, aber da hat man etwas Probleme mit der Positionierung, und große Probleme damit, dass der Desktop kein Paint-Event feuert.

    Am einfachsten scheint mir, eines Labels BackColor auf Transparent zu setzen. Aber Labels mit transparenter BackColor zicken auch immer rum.

    Raiin schrieb:

    String auf der Form haben
    So was:

    VB.NET-Quellcode

    1. Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
    2. Me.Invalidate()
    3. End Sub
    4. Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles MyBase.Paint
    5. Dim txt = "bla"
    6. If CheckBox1.Checked Then
    7. txt = "blabla"
    8. End If
    9. e.Graphics.DrawString(txt, New Font("Arial", 20, FontStyle.Bold), Brushes.Black, New Point(50, 50))
    10. End Sub

    Definiere

    Raiin schrieb:

    auf den beiden Pictureboxen transparent


    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    ErfinderDesRades schrieb:

    Wenn ich mich recht erinnere ist das überaus kompliziert, eine Zeichnung anzubringen, die mehrere Controls überdeckt. Weil Ownerdrawing drawt immer in ein Control.
    Man kann auch auf den Desktop drawn, aber da hat man etwas Probleme mit der Positionierung, und große Probleme damit, dass der Desktop kein Paint-Event feuert.

    Am einfachsten scheint mir, eines Labels BackColor auf Transparent zu setzen. Aber Labels mit transparenter BackColor zicken auch immer rum.

    Also mit den Label gehts garnicht, weil backcolor ja die Farbe/Bild von der Form nimmt.
    Und es ja 2 Pictureboxen sind gehts mit diesen Parent usw auch nicht...
    Trd. danke.

    RodFromGermany schrieb:

    Raiin schrieb:

    String auf der Form haben
    So was:

    VB.NET-Quellcode

    1. Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
    2. Me.Invalidate()
    3. End Sub
    4. Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles MyBase.Paint
    5. Dim txt = "bla"
    6. If CheckBox1.Checked Then
    7. txt = "blabla"
    8. End If
    9. e.Graphics.DrawString(txt, New Font("Arial", 20, FontStyle.Bold), Brushes.Black, New Point(50, 50))
    10. End Sub

    Definiere

    Raiin schrieb:

    auf den beiden Pictureboxen transparent

    Ja, habe ich mal getestet aber dort flackert es leider auch.
    Trd. danke.
    Ganz ehrlich... für solch Sachen würd ich einfach WPF empfehlen. Da flackert nix, da ist Transparent auch Transparent und nicht Transparent + kleinem schwarzen Rand usw.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

    Raiin schrieb:

    aber dort
    hast Du welchen Code?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Raiin schrieb:

    ​Me.Invalidate()
    :D :D :D
    Besteht Dein Programm aus genau dieser Zeile Code?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!