Espacio para programadores novatos o experimentados (o cualquiera que quiera aprender) en el lenguaje BASIC (o cualquier otro lenguaje de programación: C/C++, Java, PHP...) den a conocer sus nuevos programas, pidan ayuda, den información, etc...

Ver más
  • 1,548 Miembros
  • 711 Temas
  • 417 Seguidores
  • 0

Un humilde aporte

Hola gente, hoy voy a comentar como logre hacer algo que me estaba matando, y que hasta hoy no lo eh encontrado por ningun lado en todooooooda la web!...
Para los que estan acostuuumbradisisisismos al Visual Basic 6 y que recien se estan iniciando en .net, y para los que les interese les dejo este codigo que sirve para mantener un formulario de Forma Modal en pantalla pero en realidad no es Modal, sino es como en visual basic 6 haciamos con Form1.show,me
bueno resulta que en .net esto lo logramos escribiendo Form1.show(Me)
Pero el tema de la cuestion no es este sino seria un tonto hasta un bebe lo hubiese hecho sin mi ayuda jejeje...
el tema es que si yo tengo abierto un formulario con show(Me) y en el menu vuelvo a pulsar para abrir el form este da error...
para evitar esto podria usar .showdialog
pero la funcion showdialog sinceramente no me gusta porque no deja hacer nada hasta que uno cierra la ventana, show(me) en cambio si.
Entonces como estoy haciendo una aplicacion de escritorio la cual contiene un extenso menu, y una barra de accesos directos, y me empece a preguntar como crear una funcion de caracter publico en un modulo para llamarla desde el form menu solo asignandole el formulario a cada sub...(Pero aca surge la duda)

lo primero que intente fue lo siguiente..

Module ShowFormularios
Public Sub Cargar(ByVal FormX As Form)
If FormX.Visible = True Then
FormX.Focus()
ElseIf FormX.Visible = False Then
FormX.Show(Me)
End If
End Sub
End Module

Pero para mi sorpresa, el Me no es valido desde un Modulo...

Aqui me empezo a doler la cabezota, y como soy un cabezon...como dice el guille... no cabezon de cabeza grande sino, de que no va a estar tranquilo hasta que logra lo que quiere...jaja

empeze a buscar mil maneras de hacerlo... y como soy tan novaton en .net, tuve que en pocos minutos recurrir a google...

Como segunda sorpresa, encontre que toda la informacion referida al tema me llebaba a lo mismo... al uso de showdialog pero no era esto lo que yo necesitaba...
entonces empece a buscar la forma...
hasta que probando con las propiedades del form, lo logre de esta forma:

Module ShowFormularios
Public Sub Cargar(ByVal FormX As Form)
If FormX.Visible = True Then
FormX.Focus()
If FormX.WindowState = 1 Then
FormX.WindowState = 0
End If
ElseIf FormX.Visible = False Then
Dim yo As Form = Form.ActiveForm
FormX.Show(yo)
End If
End Sub
End Module



y en el formulario menu

Private Sub lblArticulos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)_
Handles lblArticulos.Click
Cargar(frmArticulos)
End Sub



*Pasando en limpio lo que logro con este codigo es que atraves de un formulario menu, que no es del tipo MDI osea es un form comun, llamo a otro form, lo mantengo adelante del menu, pero a su vez puedo seguir abriendo mas formularios de mi formulario menu, ademas puedo minimizar las venbtanas, y seguir abriendolas....

Espero le sea de utilidad a alguien, y para aquel que no lo sabia ahora ya lo sabe, les dejo un abrazo a todos, nos vemos la proxima, ayuda o consulta, jajaja
  • 0
  • 5Calificación
  • 3Seguidores
  • 199Visitas
  • 0Favoritos

3 respuestas

@OGCSOFT dijo Hace más de 1 año:

muy buen dato se te agradese

@FerFuego dijo Hace más de 1 año:

Buen Aporte....Gracias por compartir!!

@ap0r dijo Hace más de 1 año:

ahora el proximo con ese problema se va a ahorrar un dolor de cabeza gracias a vos... ese es el espiritu de la comu... seguí asi bambino...

Tienes que ser miembro para responder en este tema