Class (Paint)

  • VB.NET

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

    Class (Paint)

    hi leute ich will eine klasse machen wo dass paint event mit drin ist (Sub) alerdings klappt dass nicht da steht immer Das Ereignis "Paint" wurde nicht gefunden.
    könnt ihr mir helfen ???

    mfg blacknetworkbit
    MFG 0x426c61636b4e6574776f726b426974
    InOffical VB-Paradise IRC-Server
    webchat.freenode.net/
    Channel : ##vbparadise
    Eine Klasse mit einem Paint Event?! Hat für mich keinen Sinn, da wäre doch ein UserControl eher angebracht...
    aber du kannsts ja selbst schreiben:

    VB.NET-Quellcode

    1. Public Event Paint(sender As Object,e As PaintEventArgs)
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    und wie zeige ich dann dass bild(oder anderes) an ???(aktualisieren)
    mit me.invalidate ???
    hier ist der code bis jetzt :

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim lol As New x1
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. End Sub
    5. End Class
    6. Public Class x1
    7. Public Event Paint(ByVal sender As Object, ByVal e As PaintEventArgs)
    8. Private Sub lol(ByVal sender As Object, ByVal e As PaintEventArgs) Handles Me.Paint
    9. e.Graphics.FillRectangle(Brushes.Black, 1, 1, 200, 200)
    10. End Sub
    11. End Class


    Edit by ~blaze~:
    *Beiträge zusammengefügt, Doppelposts sind unerwünscht!*
    MFG 0x426c61636b4e6574776f726b426974
    InOffical VB-Paradise IRC-Server
    webchat.freenode.net/
    Channel : ##vbparadise

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „~blaze~“ ()

    Ich verstehe Dich folgendermaßen:
    Hauptfenster mit PictureBox
    -------------------------------------------------
    Editor:
    oben links (Form1-Ereignisse) auswählen
    oben rechts (Deklarationen) ==> Paint auswählen
    ==>

    VB.NET-Quellcode

    1. Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
    2. ' Paint-Ereignis des Hauptfensters
    3. End Sub

    wird angelegt.
    -------------------------------------------------
    Oder
    Editor:
    oben links (PictureBox1) auswählen
    oben rechts (Deklarationen) ==> Paint auswählen
    ==>

    VB.NET-Quellcode

    1. Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
    2. ' Paint-Ereignis der PictureBox
    3. End Sub

    wird angelegt.
    -------------------------------------------------
    Da kannst Du nun reinschreiben, was eerforderlich ist.
    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!
    hi ich will ein objekt anlegen wass ich dann in der Klasse zeichene bloß ich kriege es nicht aktualiesirt (aufgerufen)
    MFG 0x426c61636b4e6574776f726b426974
    InOffical VB-Paradise IRC-Server
    webchat.freenode.net/
    Channel : ##vbparadise
    Wenn der Rest stimmt, sollte ein

    VB.NET-Quellcode

    1. MyObject.Invalidate()
    2. MyObject.Update()

    genügen.
    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!
    sorry ich glaube ihr versteht mich nicht ?(
    nemlich ich will doch nur in einer anderern klasse ein objekt zeichenen und es in form1 anzeigen lassen ...
    ürgendwie muss ich es doch macjen könnnen schmoll

    mfg blacknetworkbit
    MFG 0x426c61636b4e6574776f726b426974
    InOffical VB-Paradise IRC-Server
    webchat.freenode.net/
    Channel : ##vbparadise
    in einer Klasse kann man kein Objekt zeichnen.
    Man kann nur in ein Graphics-Objekt hineinzeichnen - etwas anneres gibt es nicht.
    Von .Net vorgesehen ist dafür das _Paint-Event, da bekommst du in den EventArgs das aktuelle Grapics-Objekt geliefert, in das du zeichnen kannst.
    Auf keinen Fall solltest du selbst ein Graphics-Objekt erstellen - das ist nämlich eine teure Ressource, und außerdem passtes evtl nicht mehr, wenn das Control in seinen Abmaßen verändert wurde.
    Man kann auch kein Objekt zeichnen, sondern die Graphics-Klasse hat viele Draw-Methoden (DrawString, DrawRectangle, DrawEllipse, DrawImage...), die muß man verwenden.
    Was du also machen kannst, ist ein Objekt programmieren, welches weiß, wie es sich zeichnet, wenn es ein Graphics-Objekt übergeben bekommt.
    Genau das demonstriert mein Link.

    Alternativ kannst du auch ein Bitmap-Objekt erstellen, davon wiederum das Graphics-Objekt holen (Graphics.FromImage()), und da hineinzeichnen.
    Diese Bitmap kannst du dann dem Form mw. als BackgroundImage zuweisen.
    Das ist aber genausoviel arbeit, weniger flexibel (Bewegungen sind nicht machbar), und hat keine Vorteile gegenüber dem gezeigten Vorgehen. Wie im Link einleitend gesagt wird: Beim OwnerDrawing muß man komplett umdenken, und sich von der Vorstellung eines Bildes als statisches Objekt verabschieden.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    BlackNetworkBit schrieb:

    sorry ich glaube ihr versteht mich nicht ?(

    Kann es sein, dass Du eventuell eine andere Sprache sprichst?
    Poste doch mal Deinen Code. Beschreib genau was passiert und was passieren soll. Dann werden Sie geholfen.
    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!