Frågan 18 juli 2002 10:45 #1 En sak jag inte riktigt fattat än som jag känner att jag borde
veta :stud
Varför skriver man
void Page_Load(Object Sender, EvenArgs E ) {
}
vad står
Object Sender, EvenArgs E
för
??
B Beatbox Medlem sedan okt. 2001 3 217 inlägg Sender är objektet som genererade eventet. E är en argumentklass som skickas med. Om man gör egna event så definierar man en egen klass som man fyller med data (om man vill skicka data)
hmm, där hängde jag inte riktigt med kan du förklara varför
man skriver t.ex. det i en Page_Load för då skickar man ju ingenting?
B Beatbox Medlem sedan okt. 2001 3 217 inlägg Det är ju någonannan som generarar eventet PageLoad. I .NEt så har dom bestämmt all alla eventhanterare ska ha det utseendet, dvs vem som skickat eventet och en eventklass.
Sätt en brytpunkt i PageLoad och kolla på variabeln E och se vad den innehåller.
B Beatbox Medlem sedan okt. 2001 3 217 inlägg Det är ju du själv som implementerar Page_Load eventet.
F fredrik Medlem sedan dec. 1999 1 072 inlägg Alla events i .net har samma gränssnitt som "Beatbox" nämde.
Detta innebär dock inte att du inte kan få tag på alla information du behöver.
"e" ger dig information utifrån det objekt och den händelse du har tilldelat den.
Ex: (VB.NET )
En textbox's keypress event ser ut så här:
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Här ser du att e är av typen System.Windows.Forms.KeyPressEventArgs vilket gör att du kan hämta ut:
MsgBox(e.KeyChar.ToString)
Vid keydown för en textbox blir det:
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
Vilket gör att du kan hämta ut:
MsgBox(e.Shift.ToString)
e implementeras alltid fast från olika klasser.