Avatar billede cpmonster Nybegynder
18. oktober 2003 - 15:01 Der er 4 kommentarer og
1 løsning

Skabe og fange Events

VB:

Jeg har lidt problemer med Syntaxen:
Jeg skal have den til at kunne afsende et event, hvilket jeg så igen skal have samlet op i en anden funktion.
Knapperne bliver der mange af og skal oprettes dynamisk om man vil.

Jeg er gået ud fra et andet eksembel herfra, men den driller.
Yderligere skal der kunne føres nogle argumenter med over. Ellers er det selvfølgelig lige meget :)
Jeg regner med at EventArguments er det der skal til. Men den vil EventHandler ikke æde. Eller?

Private Sub bt_Start_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Start.Click

        Dim a
        For a = 1 To 5
            Dim btn As New Button()
            btn.Text = "Test" & a
            btn += New EventHandler(AddressOf fncButtonHandler)
            btn.CommandName = "test"
            btn.CommandArgument = a
            tb_buttons.Controls.Add(btn)
        Next
    End Sub

    Private Sub fncButtonHandler(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn.Click
        'tb_Result.Text = e.CommandName & " : " & e.CommandArgument
    End Sub
Avatar billede cpmonster Nybegynder
18. oktober 2003 - 15:56 #1
Problemet er at ovenstående _ikke_ godkendes af compiler
Avatar billede cpmonster Nybegynder
18. oktober 2003 - 16:51 #2
Her giver det måske mere mening:

Der er tilføjet en tabel  og en textbox til min Webform

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim a
        For a = 1 To 5
            Dim btn As New Button()
            btn.Text = "Test" & a
            'btn += New EventArgs(fncButtonHandler)
            btn.CommandName = "test"
            btn.CommandArgument = a
            Dim r As New TableRow()
            Dim c As New TableCell()
            c.Controls.Add(btn)
            r.Cells.Add(c)
            tb_buttons.Rows.Add(r)
        Next
    End Sub


    Private Sub fncButtonHandler(ByVal sender As System.Object, ByVal e As CommandEventArgs) Handles btn.Command
        tb_Result.Text = e.CommandName & " : " & e.CommandArgument
    End Sub
Avatar billede cpmonster Nybegynder
18. oktober 2003 - 16:52 #3
Hvordan linker/binder jeg fncButtonHandler på hver knap?
Avatar billede cpmonster Nybegynder
18. oktober 2003 - 16:54 #4
Og for det ikke skal være løgn, tilføj øverst hvis ikke allerede tilføjet:
    Protected WithEvents tb_buttons As System.Web.UI.WebControls.Table
    Protected WithEvents tb_Result As System.Web.UI.WebControls.TextBox
    Protected WithEvents btn As System.Web.UI.WebControls.Button
Avatar billede cpmonster Nybegynder
18. oktober 2003 - 17:16 #5
Sådan skal den Kages skæres:
AddHandler er tricket!!

Public Class WebForm1
    Inherits System.Web.UI.Page
    Protected WithEvents tb_buttons As System.Web.UI.WebControls.Table
    Protected WithEvents tb_Result As System.Web.UI.WebControls.TextBox
 
#Region " Web Form Designer Generated Code "

    'This call is required by the Web Form Designer.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub

    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN: This method call is required by the Web Form Designer
        'Do not modify it using the code editor.
        InitializeComponent()
    End Sub

#End Region

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim a
        For a = 1 To 5
            Dim btn As New Button()
            btn.Text = "Test" & a
            AddHandler btn.Click, AddressOf fncButtonHandler
            btn.CommandName = "test"
            btn.CommandArgument = a
            Dim r As New TableRow()
            Dim c As New TableCell()
            c.Controls.Add(btn)
            r.Cells.Add(c)
            tb_buttons.Rows.Add(r)
        Next
    End Sub


    Sub fncButtonHandler(ByVal sender As Object, ByVal e As EventArgs)
        tb_Result.Text = "hejssa" & sender.CommandArgument.ToString()
    End Sub

End Class
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester