domenica 15 febbraio 2009

Asp.Net invocare l'evento click di un pulsante

L'esempio di codice qui di seguito, illustra una tecnica di come invocare il metodo click di un pulsante a run time.


Nel caso si ha la necessita, di invocare l'evento click (con già il codice) di un pulsante, tramite le classi del namespace Reflection, possiamo invocarlo tranquillamento.


Aggiungere il namaspace.


VB.Net


Imports System.Reflection


C#


using System.Reflection;


Aggiungere del codice per l'evento click del pulsante


VB.Net


Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click


Response.Write("Prova")


End Sub



C#


protected void Button1_Click(object sender, EventArgs e)


{


Response.Write("Prova");


}



Nel load della form, inseriamo il seguente codice, che invoca l'evento click del pulsante.


VB.Net


Dim tipo As Type = GetType(Button)


Dim pulsante As Object() = New Object(0) {}


pulsante(0) = EventArgs.Empty


Dim m As System.Reflection.MethodInfo = tipo.GetMethod("OnClick", BindingFlags.NonPublic Or BindingFlags.Instance)


m.Invoke(Button1, pulsante)


C#



Type tipo = typeof(Button);


object[] pulsante = new object[1];


pulsante[0] = EventArgs.Empty;


System.Reflection.MethodInfo m = tipo.GetMethod("OnClick", BindingFlags.NonPublic BindingFlags.Instance);


m.Invoke(Button1, pulsante);


Nessun commento: