Announcement

Collapse
No announcement yet.

Problem mit eigener Form und Buttons

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit eigener Form und Buttons

    Guten Morgen,

    ich habe mir ein eigenes Form erstellt. Dieses Form hat insgesamt 6 Buttons. Von diesen Buttons haben 3 immer die gleiche Funktion, zu denen Verschiedene Subs gehören.

    Wenn ich jetzt dim aForm as New MyForm in einem Modul ausführe, kann ich über aForm.Button1.Text dem Button meinen gewünschten Text zuweisen. So weit so gut, doch wie kann ich jetzt das Klick Ereignis des Buttons in meinem Modul auswerten?

    Gruß Stumpi

  • #2
    Hi,

    ich gehe mal davon aus, dass Du VB.NET nutzt (sonst wärst Du im falschen Forum). Da gibt es spezielle Funktionsprototypen für die Event Handler:

    [highlight=vbNet]
    Private Sub cmdLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click
    ' hier kommt Dein Code
    End Sub
    [/highlight]

    Wichtig ist hierbei, dass die Signatur (Anzahl und Typ der Parameter) übereinstimen, und dass die Handles-Klausel das Event auflistet, der Name der Prozedur ist nicht wichtig, enthält aber üblicherweise Hinweise auf die Art des EventHandler (Click, SelectedIndexChanged, Enter, KeyPress usw.). Es macht zwar selten Sinn, Click-Events verschiedener Controls (also z.B. Buttons und ComboBoxen) zu mischen, aber prinzipiell kannst Du mehrere Events zusammenfassen:

    [highlight=vbNet]
    Private Sub cmdLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click, btnSave.Click, btnEdit.Click, btnDelete.Click
    Dim bt As Button = CType(sender, Button)
    If bt Is btnLoad Then
    ...
    ElseIf bt Is btnSave Then
    ...
    ElseIf bt Is btnEdit Or bt Is btnDelete Then
    ...
    EndIf
    End Sub
    [/highlight]

    WennDu VisualStudio benutzt, kannst Du in den Eigenschaften der Buttons (die Ansicht mit dem Blitz) für die einzelnen Events auch Subs zuweisen, die von der Signatur her passen, oder wenn keine existieren oder die passenden nicht gewünscht werden per Doppelklick den Prozedurrumpf mit der passenden Signatur erzeugen lassen.

    Gruß
    Martin
    Zuletzt editiert von M.Dietz; 29.07.2009, 10:15. Reason: Tippfehler

    Comment


    • #3
      So weit so gut, doch wie kann ich jetzt das Klick Ereignis des Buttons in meinem Modul auswerten?
      Möglichkeit 1:
      Indem du im Modul eine Funktion (Methode in C#) erstellst die aufgerufen werden soll. Der Form übergibst du eine Referenz auf das Modul im Button_Click wird dann die Funktion aufgerufen.

      Möglichkeit 2:
      Im Code der Form wird ein Ereignis deklariert das ausgelöst wird wenn auf den Button geklickt wird. Das Modul abonniert das Ereignis und kann dann darauf reagieren.


      Im Prinzip ist egal welche Möglichkeit gewählt wird. Vom Verhalten her sind sie identisch. In beiden Fällen entsteht eine Referenz von der Form auf das Modul. Möglichkeit1 geht schon etwas in die Richtung MVP.


      Edit: Hab Martins Beitrag nicht gesehen -> dieser erklärt es sehr anschaulich.

      mfG Gü
      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

      Comment


      • #4
        OK vielen Dank habs hinbekommen

        Comment

        Working...
        X