kostenloser Webspace werbefrei: lima-city


Dynamisches Hinzufügen von Events (z.B. für Button)

lima-cityForumProgrammiersprachenBasic

  1. Autor dieses Themas

    lccserver

    Kostenloser Webspace von lccserver

    lccserver hat kostenlosen Webspace.

    Hi Leute,
    ich habe also ein DYNAMISCH ERSTELLTES FORM und habe auf diesem einen Button (dynamisch) eingefügt >> nun möchte ich gern wissen, wie ich, wenn man darauf klickt ein Event auslöst...
    (Name: Button1)

    Könnt ihr mir sagen, wie ich dynamische Events (oder Event-Handler) [ich weiß nicht genau wie das nun eigentlich heißt] erstellen kann??

    PS: Danke noch mal an cbhp, welcher mir bei meinem letzten Problem sehr geholfen hat*gg*;):thumb:

    Vielen Dank im Voraus
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. button1_Click ()

    msgBox \"lal\"

    End Sub


    ---> Wie wärs damit?

    Und, wenn das nicht geht, was hast du dann für einen \"Dynamischen Button\" ?
  4. welche version von vb hast du denn?
  5. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Ich denke mal du beziehst dich auf das Thema, wie du eine dynamische Form erstellen kannst.
    Das Hinzufügen von Ereignissen ist ganz einfach mit \"AddHandler\".

    Beispiel:
    Hier wird dem Button1 in der Form1 das Click-Ereignis dynamisch zugewiesen.

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
       AddHandler Form1.Button1.Click, AddressOf DynamicClick
    
    End Sub
    
    Sub DynamicClick(ByVal sender As Object, ByVal e As System.EventArgs)
    
       MsgBox(\"Dieses Ereignis wurde dynamisch erstellt.\")
    
    End Sub



    Code bezieht sich wieder auf VB .NET 2005

    Beitrag geändert: 28.9.2007 23:06:41 von cbhp
  6. Autor dieses Themas

    lccserver

    Kostenloser Webspace von lccserver

    lccserver hat kostenlosen Webspace.

    Dankeschön, funktioniert alles wunderbar!!

    cbhp, DU bist ein VB-Gott!!

    Beitrag geändert: 30.9.2007 17:36:56 von lccserver
  7. Autor dieses Themas

    lccserver

    Kostenloser Webspace von lccserver

    lccserver hat kostenlosen Webspace.

    So, dann habe ich gleich noch ne WICHTIGE Frage:

    Und zwar, wenn ich jetzt 5 gleiche Fenster (dynamisch) erstellt habe...
    Namen: Form1 - Form5

    Und jetzt klicke ich auf Button1 (auf Form1), dann wird trotzdem 5 mal das button-event ausgeführt, wie kann ich bei Auslösen des Button-Events überprüfen, zu welchem Form der angeklickte Button gehört??

    Danke im Voraus
  8. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Dann hast du wohl den Handler 5 mal für den gleichen Button zugewiesen, anstatt den Button jeder Form (1-5) einmal zuzuweisen...

    also du musst dann schon schreiben:

    AddHandler Form1.Button1.Click, AddressOf DynamicClick
    AddHandler Form2.Button1.Click, AddressOf DynamicClick
    AddHandler Form3.Button1.Click, AddressOf DynamicClick
    AddHandler Form4.Button1.Click, AddressOf DynamicClick
    AddHandler Form5.Button1.Click, AddressOf DynamicClick

    Wobei \"DynamicClick\" irgendeine Prozedur sein kann (die natürlich die passenden Parameter hat)
  9. Autor dieses Themas

    lccserver

    Kostenloser Webspace von lccserver

    lccserver hat kostenlosen Webspace.

    Das Problem dabei ist aber, dass
    AddHandler Form1.Button1.Click, AdressOf DynamicClick
    als Fehler erkannt wird, weil Form1 ja erst zur Laufzeit
    erstellt wird (das ist auch das selbe bei Form2-Form5)

    Gibts da ne Möglichkeit das zu umgehen??
  10. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.


    Das Problem dabei ist aber, dass
    AddHandler Form1.Button1.Click, AdressOf DynamicClick
    als Fehler erkannt wird, weil Form1 ja erst zur Laufzeit
    erstellt wird (das ist auch das selbe bei Form2-Form5)

    Gibts da ne Möglichkeit das zu umgehen??


    Stimmt...
    aber du könntest es so lösen, dass du eine Muster-Form erstellst im Entwurfsmodus, diese nennst du z. B. FormMuster. Dort befindet sich auch ein Button (\"Button1\").

    Nun erstellst du dynamisch deine 5 Formen:
    Dim Form1 As New FormMuster
    Dim Form2 As New FormMuster
    Dim Form3 As New FormMuster
    Dim Form4 As New FormMuster
    Dim Form5 As New FormMuster

    Natürlich kannst du auch bei dieser Form alles noch nachträglich dynamisch verändern.
    ...und nun fügst die Handler für die Buttons hinzu:

    AddHandler Form1.Button1.Click, AddressOf DynamicClick
    AddHandler Form2.Button1.Click, AddressOf DynamicClick
    AddHandler Form3.Button1.Click, AddressOf DynamicClick
    AddHandler Form4.Button1.Click, AddressOf DynamicClick
    AddHandler Form5.Button1.Click, AddressOf DynamicClick


    Eine Frage nebenbei: Für was braucht man so viele dynamische Forms?
  11. Autor dieses Themas

    lccserver

    Kostenloser Webspace von lccserver

    lccserver hat kostenlosen Webspace.

    Nun ja...diese dynamischen Forms brauche ich zur \'Nachrichtenübermittlung\'...
  12. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    lccserver schrieb:
    Nun ja...diese dynamischen Forms brauche ich zur \'Nachrichtenübermittlung\'...


    Aber es wird doch wohl kaum jede Form komplett anders aufgebaut sein, oder?
    Dann bietet es sich doch an, eine Form im Entwurfsmodus zu erstellen, die die grundlegenden Steuerelemente enthält (Buttons, MenuStrip, ...). Hier kannst du dann auch ein Ereignis gleich festlegen oder später auch dynamisch darauf zugreien.
    Dann kannst du während der Laufzeit diese Muster-Form auch noch dynamisch anpassen, um Steuerelemente zu ändern etc.

    Also dann
    Dim Form1 As New FormMuster
    Dim Form2 As New FormMuster
    usw.
  13. Autor dieses Themas

    lccserver

    Kostenloser Webspace von lccserver

    lccserver hat kostenlosen Webspace.

    Joa, so werd ichs machen, danke dir!!
  14. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!