Asignar evento a opciones de menu dinámico

Tengo una pequeña aplicación (en vb.net) en la cual genero un menu de forma dinámica tomando los nombres de las opciones de una tabla, en la cual también almaceno el nombre del procedimiento o función al que debe acceder, todo esto en una bd de sql server, la parte de la generación del menu funciona correctamente, sin embargo no he podido asociarle los eventos a cada una de las opciones del menu.
Tengo entendido que debo hacer uso de la siguiente instrucción:
AddHandler mnuOpcion. Click, AddressOf mifuncion
Sin embargo no se como indicarle que el operando de addressof lo tome del campo de la tabla, he intentado pasar el nombre de la función (contenido en el campo de mi tabla) a una variable de tipo string y ponerla como operando del 'addressof', pero me marca el siguiente error:
"El operando de 'addressof' debe ser el nombre de un método"

1 respuesta

Respuesta
1
Yo hice un día uno, poco me acuerdo de eso pero lo que hicimos fue a lo que llenaba las opciones le concatenamos al string un hipervínculo. Sobre el address of lo que necesitas es hacer un método el cual tenga el mismo contrato que el event handler del botón click. Espero que te ayude un poco esto ya que lo hago de memoria. Te anexo un ejemplo que conseguí en la red.
        AddHandler btn.Click, AddressOf btn_Click
  private sub btn_Click(ByVal sender as object, _
      ByVal e as EventArgs)
    MessageBox.Show("btn_Click method","Events Demonstration")
  end sub
Hola.
La duda en especifico tiene que ver con el hecho de que el método del addressof esta almacenado también en la tabla por lo que debe ser dinámico ya que lo debe tormar de uno de los campos dela tabla o bien de un string.
Saludos.
Si es así, no lo podrás hacer con un contrato = adrressof, lo que te sucede es que el addressof tiene que tener los mimos parámetros que la función a la que llama. Es decir si lo que quieres es activar un botón ese botón posee estos parámetros (ByVal sender as object, ByVal e as EventArgs) la función que es llamada del adrressof debe tener los mismos parámetros. Mandame el código para ayudarte mejor y ver si se me ocurre otra cosa.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas