Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Jero67 en 30 Noviembre 2014, 21:54 pm



Título: Separar en grupos varios radiobutton (C#)
Publicado por: Jero67 en 30 Noviembre 2014, 21:54 pm
Hola a todos.

Estoy con un proyecto en el cual tengo varios grupos de RadioButton y necesito haya 1 RadioButton activado por grupo, todos estan en el mismo form, el caso es que parece ser que es un solo grupo y no varios como pretendo ya que cuando le cambio la propiedad "Checked" a uno, se me desactiva del otro, ¿como puedo crear varios grupos de todos ellos?


Título: Re: Separar en grupos varios radiobutton (C#)
Publicado por: Jero67 en 30 Noviembre 2014, 22:12 pm
Yo mismo me respondo  :o

metiendolos dentro de un Panel o GroupBox


Título: Re: Separar en grupos varios radiobutton (C#)
Publicado por: Eleкtro en 1 Diciembre 2014, 09:22 am
Yo mismo me respondo  :o

metiendolos dentro de un Panel o GroupBox

Claro, hay que entender como funciona internamente un RadioButton (http://msdn.microsoft.com/en-us/library/system.windows.forms.radiobutton%28v=vs.110%29.aspx),
éste se basa en todos los controles de su mismo type (RadioButton) que estén alojados en la misma colección de controles (ControlCollection (http://msdn.microsoft.com/en-us/library/system.windows.forms.control.controlcollection%28v=vs.110%29.aspx)), es decir, dentro del contenedor de controles donde hayas colocado el RadioButton.

Si colocas un RadioButton directamente en el Form, la colección de controles al que está asociado el RadioButton será "Form1.Contols", así que necesitas añadir una colección de controles o contenedor adicional para poder separar los RadioButton y así su comportamiento, para eso nos sirve un GroupBox, ya que si colocas un RadioButton en un GroupBox, éste se basará en la colección de controles del GroupBox, es decir, "Form1.GroupBox1.Controls".

Puedes cambiar el container en tiempo de ejecución asignando la propiedad Parent (http://msdn.microsoft.com/en-us/library/system.windows.forms.control.parent%28v=vs.110%29.aspx):
Código
  1. RadioButton1.Parent = Me.GroupBox1;
Cita de: http://msdn.microsoft.com/en-us/library/system.windows.forms.control.parent%28v=vs.110%29.aspx
Setting the Parent property value to Nothing removes the control from the Control.ControlCollection of its current parent control.

O bien usando el método Add de una colección de controles. (Ej: Me.Controls.Add)

Control.ControlCollection.Add Method - MSDN (http://msdn.microsoft.com/en-us/library/system.windows.forms.control.controlcollection.add%28v=vs.110%29.aspx)
Control.ControlCollection.AddRange Method - MSDN (http://msdn.microsoft.com/en-us/library/system.windows.forms.control.controlcollection.addrange%28v=vs.110%29.aspx)

Saludos.