18. oktober 2003 - 15:01Der 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
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
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
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
Synes godt om
Ny brugerNybegynder
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.