SoloCodigo
CLR: .Net / Mono / Boo / Otros CLR => VB .NET => Mensaje iniciado por: aitord en Lunes 27 de Abril de 2009, 17:00
-
hola.
necesito una ayuda. pego parte del codigo:
en resumen, dentro de un grupo creo radiobuttons con el " codigo de cliente".. si tengo 23 clientes me crea 3 hasta ahi bien...
mi problema radica, en controlar eventos cuando pulsa un radiobutton u otro ... no se que evento se dispara, ya que el control se crea en ejecucion.
grupo = New System.Windows.Forms.GroupBox
'' radio = New System.Windows.Forms.RadioButton
grupo.Location = New Point(385, 2)
grupo.Size = New Size(413, 127)
grupo.Text = "Codigo Cliente"
Controls.Add(grupo)
Dim m As Int32 = 3
Dim n As Int32 = 16
Dim Radio(xreg) As System.Windows.Forms.RadioButton
'
For i As Int32 = 1 To xreg
Radio(i) = New RadioButton
Radio(i).Top = n
Radio(i).Left = m
Radio(i).Text = fila("codcliente")
Radio(1).Checked = True
Radio(i).Width = 60
Radio(i).Height = 17
grupo.Controls.Add(Radio(i))
fila.Read()
m = m + 96
If i = 4 Then m = 3 : n = 39
If i = 8 Then m = 3 : n = 62
If i = 12 Then m = 3 : n = 85
Next
-
hola amigo,
lo que creo que queires hacer es poner varios button y que cada uno represente a un cliente y dar click en uno de ellos y asi ejecutar acciones para ese cliente,
si es asi debes agregar eventos, agrega esta linea antes de el for
Dim evento As New EventHandler(AddressOf clickrb)
luego pones esta linea dentro del for despues del grupo.controlls.add()
AddHandler Radio(i).Click, evento
y luego creas una procedimiento llamado clickrb
Private Sub clickrb(ByVal sender As System.Object, ByVal e As System.EventArgs)
MsgBox(CType(sender, RadioButton).Text)
End Sub
con esto cada vez que des click en un radio button te mostrata el text que tiene
espero haberte ayudado
saludos cordiales
JC
-
gracias. lo tengo.
-
hola.
solo me falta un detalle, me funciona el evento siempre que pulso el radiobutton. pero necesito que vaya la primera vez tambien, es decir,
1.- creo los radiobutton en tiempo de ejecuccion,
2.- le asigno handler correspondiente.
3.- necesito que pase por el evento sin pulsar el radiobutton la primera vez.
no se si me explico ... gracias de todas formas.
Private Sub radioX_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
If CType(sender, RadioButton).Checked = True Then
endif
-
hola,
en este ejemplo que te di se ejecuta por primera vez sin dar click en el radio button si quieres prueba poniendo un mensaje y veras que se ejecuta una 1 vez al iniciar el programa
saludos cordiales
JC
-
De todas formas puedes llarmarlo desde código, por ejemplo durante la carga del formulario dentro del 'load'.
-
lo siento pero no lo veo, al evento va cuando selecciono otro radiobutton, es decir, cada vez que me muevo por los radiobuttons, asigno a un textbox un nombvre distinto. menos la primera vez, que teniendo selecionado el primer rabiobutton, el textbox esta vacio.
si le llamo en el load, como lo puedo hacer.
gracias. a todos.
For i As Int32 = 1 To xreg
Radio(i) = New RadioButton
Radio(i).Top = n
Radio(i).Left = m
Radio(i).Text = fila("codcliente")
Radio(1).Checked = True
Radio(i).Width = 60
Radio(i).Height = 17
grupo.Controls.Add(Radio(i))
fila.Read()
m = m + 96
If i = 4 Then m = 3 : n = 39
If i = 8 Then m = 3 : n = 62
If i = 12 Then m = 3 : n = 85
Dim evento As New EventHandler(AddressOf radioX_CheckedChanged)
'ASIGNAMOS EL HANDLER Y TODO LISTO
AddHandler Radio(i).CheckedChanged, evento
Next
Private Sub radioX_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
MsgBox(CType(sender, RadioButton).Text)
end sub
-
lo siento pero no lo veo, al evento va cuando selecciono otro radiobutton, es decir, cada vez que me muevo por los radiobuttons, asigno a un textbox un nombvre distinto. menos la primera vez, que teniendo selecionado el primer rabiobutton, el textbox esta vacio.
si le llamo en el load, como lo puedo hacer.
amigo, en primer lugar dentro del for no debe ir la declaracion del evento ya que cada vez estas declarando un nuevo evento que es el mismo, debes ponerlo fuera del for
Dim evento As New EventHandler(AddressOf radioX_CheckedChanged)
For i As Int32 = 1 To xreg
Radio(i) = New RadioButton
Radio(i).Top = n
......
ahora el evento no debe ser declarado para el evento checkedchanged ya que cada vez que el control cambia de estado se ejecuta el evento, ahora analiza cuando pasas de un radiobutton a otro radiobutton el estado cambio para esos 2 controles es decir se ejecuto el evento 2 veces 1 por cada control, lo optimo es realizar el evento para el evento click
'ASIGNAMOS EL HANDLER Y TODO LISTO
AddHandler Radio(i).CheckedChanged, evento
debes poner
AddHandler Radio(i).Click ,evento
realiza estos cambios y veras que se ejecuta por primera vez el evento para el primer radio,
saludos cordiales
JC