[NET] Text auf Form zeichen (._.)

  • Wollt mal ein wenig die Pong Perfomance verbessern - so weit so gut. Nun wollte ich das er einen Text direkt auf die Form (nicht auf ein Bild, Button, ...) Zeichnen. Nein er stellt sich mir immer quer entweder es gehört nicht zur Gruppe oder es gibt ein überlauf. Ich hab nur noch totale Kopfschmerzen. Möchte das es wie eine Funktion aufrufbar ist, leider hilft mir das im Inet nicht wirklich. Immer gab es die Möglichkeit den Text direkt zu zeichnen, aber ich möchte das er per Mausklick angezeigt wird.


    Danke für Hilfe im vorraus.

  • Ich möchte es ja das es per Mausklick angeht nicht sofort zeichnet :( im PaintEvent klatscht er es einfach drauf.


    DrawString("text", Me.Font, Brushes.AliceBlue, 0, 0)


    Aber irgendwie muss ich es ja deklarieren.


    Ich deklariere:


    Dim e as graphics
    e = me.creategraphics()


    -> e ist kein Ausdruck


    Mein Code
    edit2:


    Jetzt habe ich


    Code
    1. Dim xol As Graphics
    2. xol = Me.CreateGraphics
    3. xol.DrawString("text", Me.Font, Brushes.AliceBlue, 0, 0)


    Aber kein Text wird angezeigt - kein Fehler.




    /hatte die Microsoft Seite durchgenommen...

  • Kannste ja einfach nen boolean nehmen, wenn true dann zeichnen.


    Außerdem kannste ja nicht einfach Tahoma reinschreiben. Der erwartet da ja ein Objekt vom Typ Font.


    -> Dim tahomaFont As New Font("Tahoma", 12)



    Edit:
    Einfach so bearbeiten ja :D. Wie gesagt mach das ins Paint-Event.

  • Ja schon, aber ich mein ich wills ohne Paint machen, weil das ja auch möglich ist^^


    Code


    Code
    1. Dim tahomafont As New Font("Tahoma", 12)
    2. Dim sb As SolidBrush = New SolidBrush(Color.Red)
    3. Dim xol As Graphics
    4. xol = Me.CreateGraphics
    5. xol.DrawString("text", tahomafont, sb, 227, 113)


    Kannst du mir mein Fehler irgendwie sagen?

  • Kenne mich mit dem CreateGraphics nicht aus.


    In Java gibts sowas ähnliches und das soll man nicht benutzen. Kommt damit oft zu Fehlern.




    Verstehe auch nicht warum du das nicht in das Paint-Event machen willst. Denke mal wenn du das so machst wie jetzt, wirds beim nächsten Repaint weg sein.

  • Ist mir auch aufgefallen. Heute ist mir leider etwas Schwindelig. Und ich wollte mal wieder daran arbeiten - aber ich hab leider nicht mehr viel Ahnung von GDI, also dem Paint Event.


    Edit: Habs hinbekommen, keine Ahnung wie, aber jetzt gehts plötzlich :arghs:



    Habs dann mit Paint Event gemacht damit gings schneller ._.

  • Naja du machst dir eben das Paint-Event. Geht natürlich auch ganz easy über den Designer. Auf die Form -> auf den Blitz -> Paint.


    Das Event bekommt glaube ein Objekt vom Typ PaintEventArgs übergeben ( kann auch anders heißen, weiß es gerade nicht genau ).


    Darin befindet sich dann letztendlich das Graphics Objekt.



    Pseudecode

    Code
    1. Sub onPaint(obj sender, paintEvtargs e)
    2. e.Graphics ' <-- graphics objekt
    3. End sub