Radiobutton ligados a datos ---- es un bug ?

06/11/2004 - 23:49 por E.Robles | Informe spam
Jarto de mirar post no veo otra opcion. Es un bug.

En un form sin nada mas que dos radiobutton que tengo ligados cada uno a un
campo de un dataset (creado con el asistente de un oledataadapter) no
funciona bien. Me marca (activa) los campos pero no los desactiva

He conseguido que funcione usando el sigiente codigo (pero con un problema)

Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles RadioButton2.CheckedChanged

Dim AAS As BindingManagerBase = Me.BindingContext(Me.DataSet11,
"NO_CONFORMIDAD")

Dim MICURR = AAS.Position

If Me.RadioButton2.Checked Then

Me.DataSet11.Tables(0).Rows(MICURR)("NECESITA_ACCIONES_preventivas") = True

Else

Me.DataSet11.Tables(0).Rows(MICURR)("NECESITA_ACCIONES_preventivas") = False

End If

End Sub



El problema es que hay que pulsar dos veces en cada radiobuton para que se
marquen



Parece que el evento radiobutton_change se ejecuta dos veces (una en mi
codigo y otra ... no se sabe donde)





Alguien me puede confirmar este asunto



Googleando parece que es un problema bastante comun



Salu2

Preguntas similare

Leer las respuestas

#1 E.Robles
07/11/2004 - 00:05 | Informe spam
Al darle la primera vez al radiobutton que esta desactivado HAY QUE DARLE
DOS VECES, el resto de las veces va bien

Me he fijado al depurar que al hacer click la primera vez ocurre lo
siguiente:
1.- Se ve que se marca el Radiobutton
2.- Pasa al codigo y ejecuta 2 veces el evento CheckedChanged
If Me.RadioButton1.Checked Then

Me.DataSet11.Tables(0).Rows(MICURR)("NECESITA_ACCIONES_CORRECTIVAS") = True

Else

Me.DataSet11.Tables(0).Rows(MICURR)("NECESITA_ACCIONES_CORRECTIVAS") = False

End If



PERO CONSIDERA (EN EL CASO DE RADIOBUTTON1) que esta desactivado



3.- Al aparecer otra vez el formulario aparece Radiobutton1 desactivado



Rarito, no ?






"E.Robles" escribió en el mensaje
news:%
Jarto de mirar post no veo otra opcion. Es un bug.

En un form sin nada mas que dos radiobutton que tengo ligados cada uno a
un campo de un dataset (creado con el asistente de un oledataadapter) no
funciona bien. Me marca (activa) los campos pero no los desactiva

He conseguido que funcione usando el sigiente codigo (pero con un
problema)

Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged

Dim AAS As BindingManagerBase = Me.BindingContext(Me.DataSet11,
"NO_CONFORMIDAD")

Dim MICURR = AAS.Position

If Me.RadioButton2.Checked Then

Me.DataSet11.Tables(0).Rows(MICURR)("NECESITA_ACCIONES_preventivas") =
True

Else

Me.DataSet11.Tables(0).Rows(MICURR)("NECESITA_ACCIONES_preventivas") =
False

End If

End Sub



El problema es que hay que pulsar dos veces en cada radiobuton para que se
marquen



Parece que el evento radiobutton_change se ejecuta dos veces (una en mi
codigo y otra ... no se sabe donde)





Alguien me puede confirmar este asunto



Googleando parece que es un problema bastante comun



Salu2




Respuesta Responder a este mensaje
#2 DJ MIAO
07/11/2004 - 17:58 | Informe spam
Ya no molestes con tu pregunta aqui nadie sabe.
Ese tipo de problemas no se solicionan de memoria tendria
que algun ing de aqui cojer tu codigo y buscar donde esta
el problema.


Miao...
Comprate un libro.

Jarto de mirar post no veo otra opcion. Es un bug.

En un form sin nada mas que dos radiobutton que tengo


ligados cada uno a un
campo de un dataset (creado con el asistente de un


oledataadapter) no
funciona bien. Me marca (activa) los campos pero no los


desactiva

He conseguido que funcione usando el sigiente codigo


(pero con un problema)

Private Sub RadioButton2_CheckedChanged(ByVal sender As


System.Object, ByVal
e As System.EventArgs) Handles


RadioButton2.CheckedChanged

Dim AAS As BindingManagerBase = Me.BindingContext


(Me.DataSet11,
"NO_CONFORMIDAD")

Dim MICURR = AAS.Position

If Me.RadioButton2.Checked Then

Me.DataSet11.Tables(0).Rows(MICURR)


("NECESITA_ACCIONES_preventivas") = True

Else

Me.DataSet11.Tables(0).Rows(MICURR)


("NECESITA_ACCIONES_preventivas") = False

End If

End Sub



El problema es que hay que pulsar dos veces en cada


radiobuton para que se
marquen



Parece que el evento radiobutton_change se ejecuta dos


veces (una en mi
codigo y otra ... no se sabe donde)





Alguien me puede confirmar este asunto



Googleando parece que es un problema bastante comun



Salu2




.

Respuesta Responder a este mensaje
#3 E.Robles
07/11/2004 - 18:23 | Informe spam
El codigo... Dos radiobutton ligados cada uno a un campo de una tabla de
access

Lo captas ? , o se te escapa tanta complicacion mamarracho

Adios

"DJ MIAO" escribió en el mensaje
news:4b8501c4c4ea$f8aaa1e0$
Ya no molestes con tu pregunta aqui nadie sabe.
Ese tipo de problemas no se solicionan de memoria tendria
que algun ing de aqui cojer tu codigo y buscar donde esta
el problema.


Miao...
Comprate un libro.

Jarto de mirar post no veo otra opcion. Es un bug.

En un form sin nada mas que dos radiobutton que tengo


ligados cada uno a un
campo de un dataset (creado con el asistente de un


oledataadapter) no
funciona bien. Me marca (activa) los campos pero no los


desactiva

He conseguido que funcione usando el sigiente codigo


(pero con un problema)

Private Sub RadioButton2_CheckedChanged(ByVal sender As


System.Object, ByVal
e As System.EventArgs) Handles


RadioButton2.CheckedChanged

Dim AAS As BindingManagerBase = Me.BindingContext


(Me.DataSet11,
"NO_CONFORMIDAD")

Dim MICURR = AAS.Position

If Me.RadioButton2.Checked Then

Me.DataSet11.Tables(0).Rows(MICURR)


("NECESITA_ACCIONES_preventivas") = True

Else

Me.DataSet11.Tables(0).Rows(MICURR)


("NECESITA_ACCIONES_preventivas") = False

End If

End Sub



El problema es que hay que pulsar dos veces en cada


radiobuton para que se
marquen



Parece que el evento radiobutton_change se ejecuta dos


veces (una en mi
codigo y otra ... no se sabe donde)





Alguien me puede confirmar este asunto



Googleando parece que es un problema bastante comun



Salu2




.

Respuesta Responder a este mensaje
#4 Eduardo A. Morcillo [MS MVP VB]
07/11/2004 - 19:20 | Informe spam
¿Por que si el control esta enlazado estas asignando el valor al datatable
en el evento CheckedChanged? Si esta enlazado el cambio al datatable se hace
automaticamente sin necesidad que lo tengas que hacer en el evento.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#5 E.Robles
07/11/2004 - 19:46 | Informe spam
Eso ya lo he probado y lo unico que hace es activarlo pero no los desactiva

Es decir , enlazo (en prop. avanzadas de Databinding la prop. checked a un
campo booleano de una tabla de access) Esto para cada radiobutton , y cada
radiobutton con un campo distinto.

Buscando en google hay mas gente con el mismo problema , me pasa exactamente
esto :
http://www.dotnettalk.net/two-way_d...297-a.html

Ahora lo acabo de probar otra vez (en un formulario nuevo con un groupbox y
dos radiobutton enlazados y me ocurre otra cosa que tambien me ha pasado
antes) : que ni siquiera activa los campos


Daban la solucion de actualizar por codigo el dataset ( realmente uso
C1Expresstable pero lo he probado con Dataset creado de Oledbadapter y pasa
lo mismo)

Esta solucion da el problema de que tenia que darle dos veces a cada
radiobutton si queria que se marcase (veo que se ejecuta dos veces
checkedchange) Realmente si lo depuro veo que el radiobutton que clikeo veo
que se marca, pasa al checkedchange y se ejecuta dos veces este evento - la
primera considera que esta activo y la segunda como inactivo ?? es decir que
lo acaba desmarcando. La segunda vez que clikeo se acaba marcando

Despues de todo acabo de solucionarlo desactivando Autocheck y escribiendo
el codigo

Private Sub RadioButton1_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles RadioButton1.Click

Dim AAS As BindingManagerBase =
Me.BindingContext(Me.C1ExpressTable1.DataTable,
"NECESITA_ACCIONES_correctivas")

Dim MICURR = AAS.Position

Me.C1ExpressTable1.DataTable.Rows(MICURR)("sin_necesidad_acciones") = False

Me.C1ExpressTable1.DataTable.Rows(MICURR)("NECESITA_ACCIONES_preventivas") =
False

Me.RadioButton1.Checked = True

Me.RadioButton2.Checked = False

Me.RadioButton3.Checked = False

End Sub

Private Sub RadioButton2_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles RadioButton2.Click

Dim AAS As BindingManagerBase =
Me.BindingContext(Me.C1ExpressTable1.DataTable,
"NECESITA_ACCIONES_preventivas")

Dim MICURR = AAS.Position

Me.C1ExpressTable1.DataTable.Rows(MICURR)("NECESITA_ACCIONES_correctivas") =
False

Me.C1ExpressTable1.DataTable.Rows(MICURR)("sin_necesidad_acciones") = False

Me.RadioButton2.Checked = True

Me.RadioButton1.Checked = False

Me.RadioButton3.Checked = False

End Sub

Private Sub RadioButton3_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles RadioButton3.Click

Dim AAS As BindingManagerBase =
Me.BindingContext(Me.C1ExpressTable1.DataTable, "sin_necesidad_acciones")

Dim MICURR = AAS.Position

Me.C1ExpressTable1.DataTable.Rows(MICURR)("NECESITA_ACCIONES_correctivas") =
False

Me.C1ExpressTable1.DataTable.Rows(MICURR)("NECESITA_ACCIONES_preventivas") =
False

Me.RadioButton3.Checked = True

Me.RadioButton2.Checked = False

Me.RadioButton1.Checked = False

End Sub



Salu2



"Eduardo A. Morcillo [MS MVP VB]" <emorcilloATmvps.org> escribió en el
mensaje news:
¿Por que si el control esta enlazado estas asignando el valor al datatable
en el evento CheckedChanged? Si esta enlazado el cambio al datatable se
hace
automaticamente sin necesidad que lo tengas que hacer en el evento.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida