Visual Basic.NET - Validar Formulario Activo en un SplitContainer

 
Vista:
Imágen de perfil de Edgar

Validar Formulario Activo en un SplitContainer

Publicado por Edgar (2 intervenciones) el 03/01/2015 03:12:38
Captura11

Hola buenas noches, como se puede apreciar en la imagen tengo un formulario dividido con un SplitContainer en la parte superior están los diferentes botones, y en la parte inferior se mostraran los diferentes formularios con de agregar clientes, modificar, ect.

El código que uso para mostrar los formularios en el SplitContainer. panel2 es el siguiente.

Private Sub NuevoUsuarioToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NuevoUsuarioToolStripMenuItem.Click
Fr_usuarios_add.TopLevel = False
Fr_usuarios_add.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedDialog
Fr_usuarios_add.Dock = DockStyle.Fill
SplitContainer_fr_principal.Panel2.Controls.Add(Fr_usuarios_add)
Fr_usuarios_add.BringToFront()
Fr_usuarios_add.Show()
End Sub


Ahora cada formulario tiene los botones típicos de guardar, modificar, eliminar con sus respectivos procedimientos.

Lo que intento hacer es con los botones que están en la parte superior del SplitContainer es llamar a la función respectiva de cada formulario, pero aquí es el problema que tengo no logro validar o no se como validar el formulario que se encuentra activo para poder asignarle el procedimiento adecuado.
el siguiente código lo estaba realizando me funciona pero con la novedad de que si tengo varios formularios activos me ejecuta e procedimiento a todos los formularios abiertos y no al que yo quiero (el que este activo).

Private Sub NewToolStripMenuItem1_Click(sender As Object, e As EventArgs) Handles NewToolStripMenuItem1.Click
With Fr_cliente_add
If SplitContainer_fr_principal.Panel2.Contains(Fr_cliente_add) = True Then
Call .generar_nuevo_codigo_cliente()
End If
End With
With Fr_productos_add
If SplitContainer_fr_principal.Panel2.Contains(Fr_productos_add) = True Then
Call .nuevo_codigo_producto()
End If
End With
End Sub


Espero y me puedan ayudar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 481
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Validar Formulario Activo en un SplitContainer

Publicado por Miguel (476 intervenciones) el 03/01/2015 05:39:44
Hola, puedes declarar una variable en el formulario y le asignas un valor distinto por cada formulario, y cuando quieras verificar solo consulta el valor de la variable, así sabrás cuál tienes...

Ejemplo:

Declaras la variable para el formulario

1
Dim xFormulario As Integer = 0


Muestras tu formulario:

1
2
3
4
5
6
7
8
9
Private Sub NuevoUsuarioToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles NuevoUsuarioToolStripMenuItem.Click
   Fr_usuarios_add.TopLevel = False
   Fr_usuarios_add.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedDialog
   Fr_usuarios_add.Dock = DockStyle.Fill
   SplitContainer_fr_principal.Panel2.Controls.Add(Fr_usuarios_add)
   Fr_usuarios_add.BringToFront()
   Fr_usuarios_add.Show()
   xFormulario=1 'Aquí le indicas cuál formulario es...
End Sub


y verificas cuál tienes...

1
2
3
4
5
6
7
8
9
10
11
Sub verificar()
  if xFormulario= 0 then
      msgbox("vacio")
  elseif xFormulario = 1 then
      msgbox("form X")
      call nuevo_codigo_producto()
   elseif xFormulario = 2 then
      msgbox("form Y")
      call otraFuncion()
   end if
end sub


Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Edgar

Validar Formulario Activo en un SplitContainer

Publicado por Edgar (2 intervenciones) el 03/01/2015 14:41:28
Estimado agradezco su ayuda, estaba probando la opción que me describió pero al momento de ejecutarla sigo con el inconveniente de no lograr identificar el ultimo formulario abierto que este visible.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar