Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Anonymatrix en 20 Marzo 2013, 17:10 pm



Título: Visual Basic 2008 Duda Ventanas
Publicado por: Anonymatrix en 20 Marzo 2013, 17:10 pm
Digamos que tengo 2 ventanas, Form1 y Form2.

En Form1 hay 1 botón llamado Botón1 y en Form2 hay 1 botón llamado Botón2.

Al abrir Form1 y apretar Botón1 la ventana Form1 se cierra y se abre Form2:

Me.Hide()
Form2.Show()

El problema es que quiero que cuando se abra Form2 aparezca en las mismas coordenadas, en la misma posición en la que se encontraba Form1 antes de cerrarse.

Y si muevo Form2 cliqueándolo y arrastrándolo hasta otra posición en la pantalla del pc, que al apretar Botón2, Form1 aparezca en la misma posición en la que se encontraba Form2 antes de cerrarse.


Título: Re: Visual Basic 2008 Duda Ventanas
Publicado por: Eleкtro en 20 Marzo 2013, 17:38 pm
Aquí posteé una función para hacerlo: http://foro.elhacker.net/net/libreria_de_snippets_posteen_aqui_sus_snippets-t378770.0.html;msg1817291#msg1817291

Citar
Código
  1.    #Region " CenterForm function "
  2.  
  3.       Function CenterForm(ByVal Form_to_Center As Form, ByVal Form_Location As Point) As Point
  4.           Dim FormLocation As New Point
  5.           FormLocation.X = (Me.Left + (Me.Width - Form_to_Center.Width) / 2) ' set the X coordinates.
  6.           FormLocation.Y = (Me.Top + (Me.Height - Form_to_Center.Height) / 2) ' set the Y coordinates.
  7.           Return FormLocation ' return the Location to the Form it was called from.
  8.       End Function
  9.  
  10.    #End Region
  11.  
  12.       ' Form2 Load
  13.       Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  14.           Me.Location = Form1.centerForm(Me, Me.Location)
  15.       End Sub
  16.  
  17.       ' Private Sub Button_MouseHover(sender As Object, e As EventArgs) Handles Button1.MouseHover
  18.       '     Form2.Show()
  19.       ' End Sub
  20.  
  21.       ' Private Sub Button_MouseLeave(sender As Object, e As EventArgs) Handles Button1.MouseLeave
  22.       '     Form2.Dispose()
  23.       ' End Sub

Saludos


Título: Re: Visual Basic 2008 Duda Ventanas
Publicado por: Anonymatrix en 20 Marzo 2013, 18:46 pm
Puse en Form2:

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Location = Form1.Location
    End Sub

Y me funcionó. Gracias por tu ayuda.



Ya que tengo otro problema y se adecua con el título del post seguiré debatiéndolo aquí por no hacer otro tema:


Cuado cierro Form1 y se abre automáticamente Form2 se nota que cambia de ventana, ¿Hay alguna forma para que parezca que todo pertenece a la misma Form?

Al principio trabajaba con 1 sola Form y al tener muchas cosas y estar todo en 1 ventana quedaba bien pero al final tanta cosa liaba 1 poco y decidí hacerlo en varias Form, ahora me resulta más fácil mejorar el programa, sin embargo no me gusta respecto a la apariencia, se nota mucho que cambia de ventana, quiero que parezca que esta todo en la misma ventana como cuando tenia 1 sola Form.


Título: Re: Visual Basic 2008 Duda Ventanas
Publicado por: Danyfirex en 20 Marzo 2013, 20:40 pm
trabaja en el mismo formulario escondiendo los controles. o usa un tabcontrol.