Separar en grupos varios radiobutton (C#)

Iniciado por Jero67, 30 Noviembre 2014, 21:54 PM

0 Miembros y 1 Visitante están viendo este tema.

Jero67

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?

Jero67

Yo mismo me respondo  :o

metiendolos dentro de un Panel o GroupBox

Eleкtro

#2
Cita de: Jero67 en 30 Noviembre 2014, 22:12 PMYo mismo me respondo  :o

metiendolos dentro de un Panel o GroupBox

Claro, hay que entender como funciona internamente un RadioButton,
éste se basa en todos los controles de su mismo type (RadioButton) que estén alojados en la misma colección de controles (ControlCollection), 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:
Código (csharp) [Seleccionar]
RadioButton1.Parent = Me.GroupBox1;
Cita de: http://msdn.microsoft.com/en-us/library/system.windows.forms.control.parent%28v=vs.110%29.aspxSetting 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
Control.ControlCollection.AddRange Method - MSDN

Saludos.