Buen día.
Voy a plantear mi duda, espero explicarme bien.
Tengo un formulario principal (FMain) que contiene dos Panel (panel1 y panel2).
Un formulario (Frequest) en el cual tengo un gridview del tipo cGrid ( que es una clase). Ahí se despliegan datos de una base de datos.
Desde FMain se pueden generar dos objetos tipo Frequest que se incrustarán en los paneles Panel1 y Panel2. Puedo agregar y quitar lineas de los gridview. Hasta ahí, el programa trabaja bien.
Mi problema surge cuando trato de modificar esos datos automáticamente haciendo un click en un botón. Utilicé el siguiente código:
mm = 0
For Each tempForm In FMain.Panel1.Children
ww = tempForm
For Each tempGrid In ww.Children
tt = tempGrid
If tt Is CGrid Then
tt.Select
mm = tt.Rows.Count
If mm <> 0 Then
For n = 0 To mm - 1
LeerModificarGridLinea(n, tt)
Next
Endif
Endif
mm = 0
Next
Next
Empieza bien, busca los objetos dentro del Panel1 que a su vez contiene el objeto Frequest que contiene el objeto Gridview. Ejecuta la subrutina LeerModificarGridLinea. El problema viene cuando trata de buscar otro objeto Gridview. Al parecer encuentra otro más (lo cual se supone que no existe), traté de poner una variable mm que indica cuantas filas tiene ese Gridview.
Cuando encuentra por primera vez el gridview, mm = 0 cambia al valor m=9 (como ejemplo) lee bien todas las líneas, en la segunda vuelta, el valor de mm lo reseteo a mm= 0 y al encontrar el "segundo gridview" vuelve a tomar el valor de m= 9 pero ahora sin valores en las celdas, generando error.
¿Me pueden dar una idea de cómo puedo solucionarlo? Pensaba forzar la salida ( en virtud de que no va a existir nunca un segundo gridview dentro de Panel 1) . Pero no tengo idea de cómo forzar esa "salida".
Por lo demás, creo que forzar este tipo de salidas puede generar muchos problemas.