none
Sender no permite el enlace en tiempo de ejecución RRS feed

  • Pregunta

  • Hola a todos:

    Estoy tratando de hacer unas pruebas con un código de microsoft y me está indicando error en "sender" (Sender no permite en enlace en tiempo de ejecución.

     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            RadioButton1.Text = "Create_Workbook"
            RadioButton2.Text = "Retrieve_Records"
            RadioButton3.Text = "Add_Records"
            RadioButton4.Text = "Update_Records"
            RadioButton5.Text = "Update_Individual_Cells"
            RadioButton6.Text = "Use_External_Source"
            Button1.Text = "Go!"
        End Sub
    
        Private Sub RadioButtons_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
              Handles RadioButton1.Click, RadioButton2.Click, RadioButton3.Click,
              RadioButton4.Click, RadioButton5.Click, RadioButton6.Click
    
            m_sAction = sender.text 'Guardamaos el texto seleccionado
        End Sub

    Cómo lo puedo solucionar.

    Muchas gracias a todos.

    Gemma

    jueves, 18 de mayo de 2017 8:55

Respuestas

  • "gemma_campillo" preguntó:

    > Estoy tratando de hacer unas pruebas con un código de microsoft y me
    > está indicando error en "sender" (Sender no permite en enlace en tiempo
    > de ejecución.
    >
    >     Private Sub RadioButtons_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
    >         Handles RadioButton1.Click, RadioButton2.Click, RadioButton3.Click,
    >         RadioButton4.Click, RadioButton5.Click, RadioButton6.Click
    >
    >       m_sAction = sender.text 'Guardamaos el texto seleccionado
    >   End Sub
    >
    > Cómo lo puedo solucionar.

    Gemma, observa que el parámetro sender está declarado con el tipo de dato Object, por lo que éste objeto no tiene implementada ninguna propiedad llamada Text, pero sí la tiene el objeto RadioButton que ha desencadenado el evento Click y que se encuentra referenciado por el parámetro sender.

    Como seguramente tienes activada la instrucción Option Strict, que es lo que se debe hacer, ésta no permite los enlaces en tiempo de ejecución (convertir implícitamente una variable Object en otro objeto diferente), por lo que tendrás que hacer la conversión explícitamente en tiempo de diseño:

        ' Referenciamos el objeto Radiobutton que ha desencadenado el evento Click
    ' a la vez que asignamos el valor de su propiedad Text a la variable m_sAction.
    ' m_sAction = DirectCast(sender, RadioButton).Text 'Guardamaos el texto seleccionado


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    • Propuesto como respuesta Sergio Parra viernes, 26 de mayo de 2017 7:42
    • Marcado como respuesta gemma_campillo viernes, 26 de mayo de 2017 9:00
    viernes, 26 de mayo de 2017 7:19
    Moderador

Todas las respuestas

  • "gemma_campillo" preguntó:

    > Estoy tratando de hacer unas pruebas con un código de microsoft y me
    > está indicando error en "sender" (Sender no permite en enlace en tiempo
    > de ejecución.
    >
    >     Private Sub RadioButtons_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
    >         Handles RadioButton1.Click, RadioButton2.Click, RadioButton3.Click,
    >         RadioButton4.Click, RadioButton5.Click, RadioButton6.Click
    >
    >       m_sAction = sender.text 'Guardamaos el texto seleccionado
    >   End Sub
    >
    > Cómo lo puedo solucionar.

    Gemma, observa que el parámetro sender está declarado con el tipo de dato Object, por lo que éste objeto no tiene implementada ninguna propiedad llamada Text, pero sí la tiene el objeto RadioButton que ha desencadenado el evento Click y que se encuentra referenciado por el parámetro sender.

    Como seguramente tienes activada la instrucción Option Strict, que es lo que se debe hacer, ésta no permite los enlaces en tiempo de ejecución (convertir implícitamente una variable Object en otro objeto diferente), por lo que tendrás que hacer la conversión explícitamente en tiempo de diseño:

        ' Referenciamos el objeto Radiobutton que ha desencadenado el evento Click
    ' a la vez que asignamos el valor de su propiedad Text a la variable m_sAction.
    ' m_sAction = DirectCast(sender, RadioButton).Text 'Guardamaos el texto seleccionado


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    • Propuesto como respuesta Sergio Parra viernes, 26 de mayo de 2017 7:42
    • Marcado como respuesta gemma_campillo viernes, 26 de mayo de 2017 9:00
    viernes, 26 de mayo de 2017 7:19
    Moderador
  • Hola maestro:

    Muchas gracias por la aportación.

    Como siempre te quedo muy agradecida.

    Un abrazo.

    Gemma

    viernes, 26 de mayo de 2017 9:01