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?
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 (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):
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 (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.