visual validar usar sirve radiobutton que propiedades para ejemplos como agrupar winforms user-interface radio-button options selecteditem

winforms - validar - radio button visual basic propiedades



¿Cuál es la mejor manera de implementar una cuadrícula 2D de botones de radio? (3)

Una matriz 1D de matrices 1D de botones de radio. Cada fila (o columna) usaría la funcionalidad normal del botón de opción, mientras que cada columna (o fila) se actualizaría mediante un bucle llamado cuando se active un botón de opción individual.

¿Cuál es la mejor manera de implementar una cuadrícula 2D de botones de radio para que solo se pueda seleccionar una opción en cada columna y una opción en cada fila?


¿Algo como esto?

using System; using System.Drawing; using System.Windows.Forms; class Program { static RadioButton[] bs = new RadioButton[9]; static void HandleCheckedChanged (object o, EventArgs a) { RadioButton b = o as RadioButton; if (b.Checked) { Console.WriteLine(Array.IndexOf(bs, b)); } } static void Main () { Form f = new Form(); int x = 0; int y = 0; int i = 0; int n = bs.Length; while (i < n) { bs[i] = new RadioButton(); bs[i].Parent = f; bs[i].Location = new Point(x, y); bs[i].CheckedChanged += new EventHandler(HandleCheckedChanged); if ((i % 3) == 2) { x = 0; y += bs[i].Height; } else { x += bs[i].Width; } i++; } Application.Run(f); } }

Saludos, Tamberg


Puede abordar esto con una colección personalizada y enlazar los botones de opción con los botones de opción.

Cada niño individual tendría una propiedad para la fila y una propiedad para la columna, así como el indicador de valor verdadero / falso, que genera un evento cuando se cambia a verdadero mediante un clic o pulsación de tecla.

La lógica de la clase de recopilación responderá al cambio de valor y recorrerá a los otros niños en la misma fila y columna para notificarles que deben ser falsos.

Si no desea la conexión de datos, también puede hacerlo con una colección de controles de usuario.