migracion vb a vb.net

07/08/2006 - 09:11 por tonid | Informe spam
a ver si alguien m puede ayudar con ese error

Private Sub Option4_CheckedChanged(ByVal eventSender As System.Object,
ByVal eventArgs As System.EventArgs) Handles Option4.CheckedChanged

If eventSender.Checked Then

me da el siguiente error:

Option Strict On no permite el enlace en tiempo de ejecución.

alguien sabe como debo de declarar eventsender y que hace esa
instruccion

Preguntas similare

Leer las respuestas

#1 Leonardo Azpurua [mvp vb]
07/08/2006 - 16:06 | Informe spam
"tonid" escribió en el mensaje
news:
a ver si alguien m puede ayudar con ese error

Private Sub Option4_CheckedChanged(ByVal eventSender As System.Object,
ByVal eventArgs As System.EventArgs) Handles Option4.CheckedChanged

If eventSender.Checked Then

me da el siguiente error:

Option Strict On no permite el enlace en tiempo de ejecución.

alguien sabe como debo de declarar eventsender y que hace esa
instruccion


Hola.

eventSender esta declarado como Object, y con Option Strict On no puedes
usar el late binding implicito en el uso de Object.

La opcion mas simple, dado que sabes que Sender = Option4 seria escribir "If
Option4.Checked".

Para una solucion mas general podrias escribir "If DirectCast(Sender,
RadioButton).Checked"

Salud!
Respuesta Responder a este mensaje
#2 Harvey Triana
07/08/2006 - 16:23 | Informe spam
Cuando usas Option Strict On debes convertir el tipo Object al tipo
pertinente. El cast de VB.NET se hace con CType, por ejemplo:

Private Sub CheckBox1_CheckedChanged( _
ByVal sender As Object, _
ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged

MessageBox.Show(CType(sender, CheckBox).Checked.ToString)
End Sub

Otra opción es usar el control como tal en vez de sender, ejemplo

If Option4.Checked Then ...

Una tercera opcion menos favorable es Option Strict Off

<Harvey Triana />

"tonid" escribió en el mensaje
news:
a ver si alguien m puede ayudar con ese error

Private Sub Option4_CheckedChanged(ByVal eventSender As System.Object,
ByVal eventArgs As System.EventArgs) Handles Option4.CheckedChanged

If eventSender.Checked Then

me da el siguiente error:

Option Strict On no permite el enlace en tiempo de ejecución.

alguien sabe como debo de declarar eventsender y que hace esa
instruccion
Respuesta Responder a este mensaje
#3 SoftJaén
07/08/2006 - 16:32 | Informe spam
Quiero recordar que el grupo de noticias de Visual Basic clásico, te comenté
que era más fácil crear una nueva aplicación .net, que actualizar una ya
existente, porque por narices, hasta que no depures todo el código de la
aplicación, siempre vas a estar con los mismos mensajes de error.

"tonid" preguntó:

a ver si alguien m puede ayudar con ese error

Private Sub Option4_CheckedChanged(ByVal eventSender As System.Object,
ByVal eventArgs As System.EventArgs) Handles Option4.CheckedChanged

If eventSender.Checked Then

me da el siguiente error:

Option Strict On no permite el enlace en tiempo de ejecución.



Si tienes activada la instrucción Option Strict, el mismo mensaje te indica
que no se permiten los enlaces en tiempo de ejecución, es decir, que todo lo
que desees hacer con un objeto, se debe de poder resolver en tiempo de
diseño.

Visual Basic 6.0, y todos sus antecesores, permitían los enlaces en tiempo
de ejecución, pero Visual Basic .net no lo permite si tienes activada la
instrucción Option Strict. Y eso es así, y no hay que darle más vueltas al
asunto, por lo que siempre digo lo mismo: las aplicaciones antiguas, hay que
dejarlas tal cual están, y utilizar Visual Basic 2005 para las nuevas
aplicaciones que se desarrollen.

Las directrices de Microsoft respecto a los eventos de los objetos en Visual
Basic .net, son muy claras, y más o menos vienen a decir, que todos los
eventos disponen de dos parámetros: «sender», que representa el objeto que
provoca el evento, y «e», que expone las propiedades del objeto, las cuales
varían dependiendo del tipo objeto que provoca el suceso.

If eventSender.Checked Then



El evento «CheckedChanged» se produce cuando cambia el valor de la propiedad
«Checked» de un control RadioButton, pero para acceder a las propiedades del
objeto RadioButton, deberás convertir explicitamente el objeto «eventSender»
en un objeto RadioButton:

Private Sub Option4_CheckedChanged( _
ByVal eventSender As System.Object, _
ByVal eventArgs As System.EventArgs) _
Handles Option4.CheckedChanged

Dim rdoButton As RadioButton = CType(eventSender, RadioButton)

If rdoButton.Checked Then
MessageBox.Show("La casilla está activada.")
Else
MessageBox.Show("La casilla no está activada.")
End If

End Sub

De todas formas, para saber si un control RadioButton está activado o no, lo
único que tienes que hacer es leer la propiedad «Checked» del propio control
RadioButton:

If Option4.Checked Then
' Está activado
End If

Enrique Martínez
[MS MVP - VB]

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.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida