Muy buenas a todos. Antes de plantear mi consulta, les cuento que estoy haciendo una aplicación windows form en VB.NET 2012 conectada a una base de datos sql server, ahora me encuentro en la etapa de validaciones y si bien puedo hacerla control por control, son muchossss como para hacerlo uno por uno.
A continuación explico todo con imágenes para que quede claro: Imagen 1:
En la imagen 1 se aprecia un tab panel llamado "Respuestas correctas" que agrega preguntas de manera dinámica según lo que se indique en el combobox "N° Preguntas" y valida el número de alternativas en el combobox "N° Alternativas", esto está funcionando bien, cuando elijo el número de preguntas se agregan las filas con las preguntas de la forma nombrecontrol.visible = false o true según quiera esconderala o mostrarla y el número de alternativas pueden ser 3, 4 o 5 y las valido con keypress asignando el ascci a las letras que puede agregar el usuario (si son 3, ABC, si son 4 ABCD, si son 5 ABCDE).
El problema de validación que tengo ahora viene en la imagen 2, y tiene que ver con lo siguiente:
Puedo agregar hasta 90 preguntas, y lo que busco es deshabilitar todos los textbox y dejarlos gris exceptuando el que corresponde a la alternativa que eligió el usuario, me explico, si el usuario elige la alterntiva C en la pregunta 50, debiera en la fila 50 solo activarse el textbox abajo del número 3, si elige el D, se activa el textbox del número 4 y así según corresponda la alternativa elegida por el user y que en la que queda activa aparezca el número 1 por defecto (cómo valor numérico, no alfanumérico). El tema es que tendría que hacer esto por cada pregunta puediendo partir en 10 y hasta 90 en bloques de 5 en 5 lo que encuentro es mucho para validar uno a uno. Tengo un panel que agrupa las 10 primera preguntas y luego varios paneles que agrupan preguntas de 5 en 5 hasta llegar a 90, esto me permite mostrar o esconder según la elección de preguntas que haga el usuario.
Otro tema, es que cuando presiono el botón que está entre el checkbox y el último textbox de cada pregunta, me debiese habilitar todos los textbox de esa fila y si presiono el checkbox debiese bloquear todos los textobx de esa fila y dejarlos en cero o limpios cada caja de esa fila.
1) Las imágenes no se veian, te he editado el post para que al menos se vean las urls, pero creo que no te costaba nada revisar el post que escribiste por ti mismo.
2) Me da la sensación de que estás utilizando el framework de DotNetBar ya que el Form es idéntico al de las plantillas que proporcionan, bueno, obviamente estás utilizando un set de controles profesionales ya sea DotNetBar, Telerik, DevExpress, o etc., y lo que quiero decir con esto es que dichas herramientas profesionales suelen traer mucho más que los propios controles, como métodos de validacion para ciertas tareas, incluso podría haber algún custom ErrorProvider, etc, no te vendría mal preguntar al soporte de la compañia en cuestión para verificar si proporcionan algo en el paquete que te pueda ser útil para resolver el problema que tienes, el cual no se si he llegado a comprender muy bien.
Puedo agregar hasta 90 preguntas, y lo que busco es deshabilitar todos los textbox y dejarlos gris exceptuando el que corresponde a la alternativa que eligió el usuario, me explico, si el usuario elige la alterntiva C en la pregunta 50, debiera en la fila 50 solo activarse el textbox abajo del número 3, si elige el D, se activa el textbox del número 4 y así según corresponda la alternativa elegida por el user y que en la que queda activa aparezca el número 1 por defecto (cómo valor numérico, no alfanumérico). El tema es que tendría que hacer esto por cada pregunta puediendo partir en 10 y hasta 90 en bloques de 5 en 5 lo que encuentro es mucho para validar uno a uno. Tengo un panel que agrupa las 10 primera preguntas y luego varios paneles que agrupan preguntas de 5 en 5 hasta llegar a 90, esto me permite mostrar o esconder según la elección de preguntas que haga el usuario.
Otro tema, es que cuando presiono el botón que está entre el checkbox y el último textbox de cada pregunta, me debiese habilitar todos los textbox de esa fila y si presiono el checkbox debiese bloquear todos los textobx de esa fila y dejarlos en cero o limpios cada caja de esa fila.
Sinceramente, ¿en serio esperas poder recibir ayuda cualificada sin mostrar parte de tú código?, para empezar no sabemos de que manera estás generando los controles dinamicamente por ejemplo el nombre dinámico que les estás asignando (si alguno), pero al instanciar los textboxes, los checkboxes, y los botones, deberías añadirle un Tag a cada control haciendo referencia a la fila en cuestión donde los estás agregando, y así no tendrías dificultades para desactivar los textboxes de una fila en concreto.
No se si esto es lo que buscas, pero creo que podrás adaptarlo a tus necesidades.
Ejemplo:
Source:
Código
PublicClass Form1
''' <summary>
''' Initializes a new instance of the <see cref="Form1"/> class.
''' </summary>
PublicSubNew()
' This call is required by the designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
Como te habrás dado cuenta uso una class llamada 'Control Iterator', es una Class que escribí hace tiempo que te puede servir para el propósito del primer problema y del segundo problema, el código es demasiado largo así que aqui te lo dejo en un enlace externo: