Si estoy en la misma ventana si puedo esconder con Me.Hide(), pero si abro otra ventana con un boton y coloco.
Dim Ventana As New VentanaAnterior
Ventana.Hide
el codigo ejecuta sin errores, pero la ventana anterior sigue visible.
Recibe ayuda de expertos
Es gratis y fácil
Respuestas, votos y comentarios
Recibe puntos, vota y da la solución
Si estoy en la misma ventana si puedo esconder con Me.Hide(), pero si abro otra ventana con un boton y coloco.
Dim Ventana As New VentanaAnterior
Ventana.Hide
el codigo ejecuta sin errores, pero la ventana anterior sigue visible.
Lo prometido, aquí esta la forma de cerrar una ventana desde otra ventana WFP.
El codigo de la primera ventana.
Class MainWindow
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
Dim Ventana As New Window1
Ventana.Owner = Me
Ventana.Show()
End Sub
End Class
El codigo de la segunda ventana que ocultara la primera ventana (si desean cerrar solo cambien la palabra Hide por la palabra Close).
Public Class Window1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
Dim VentPrincipal As MainWindow
VentPrincipal = Me.Owner
VentPrincipal.Hide()
End Sub
End Class
Eso es todo, nuevamente gracias a todos los que se preocupan por ayudar a los que sabemos menos, algún día sabremos más.
¿Por qué no le pasas una referencia a la ventana anterior en su constructor? Así desde la nueva ventana ya podrás llamar a su método hide.
Bueno aquí va el código utilizado.
de la ventana 1 o ventana principal
XAML
<Window x:Class="MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="278" Width="377">
<Grid>
<Button Content="Ocultar Ventana" Height="53" HorizontalAlignment="Left" Margin="123,43,0,0" Name="Button1" VerticalAlignment="Top" Width="106">
<Button Content="Nueva Ventana" Height="53" HorizontalAlignment="Left" Margin="123,122,0,0" Name="Button2" VerticalAlignment="Top" Width="106">
</Grid></Window>
El codigo
Class MainWindow
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
Me.Hide()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button2.Click
Dim Ventana As New Window1
Ventana.Show()
End Sub
Public Sub ocultar()
Me.Hide()
End Sub End Class
Ventana 1 con un boton que tiene que ocultar la ventana principal
XAML
<Window x:Class="Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Window1" Height="300" Width="300">
<Grid>
<Button Content="Ocultar Ventana Anterior" Height="58" HorizontalAlignment="Left" Margin="71,88,0,0" Name="Button1" VerticalAlignment="Top" Width="153">
</Grid></Window>
El codigo
Public Class Window1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
Dim VentanaAnterior As New MainWindow
VentanaAnterior.ocultar()
End Sub End Class
Como veras, estoy referenciando a la ventana principal, y estoy tratando de ejecutar un procedimiento llamado ocultar.
A ver si con código me hago entender por fin (revisa la sintaxis porque está escrito aquí directamente):
Public Class Window1
// Propiedad para guardar la referencia a MainWindow
Private parent as MainWindow
Public Sub New(ByRef parent as MainWindow)
Me.parent = parent
end Sub
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
// Aquí usas la referencia que tienes guardada en la propiedad
Me.parent.ocultar()
End Sub
End Class
Y desde MainWindow al instancar Window1 le pasas MainWindow.
Class MainWindow
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
Me.Hide()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object,
ByVal e As System.Windows.RoutedEventArgs) Handles Button2.Click
Dim Ventana As New Window1(Me)
Ventana.Show()
End Sub
Public Sub ocultar()
Me.Hide()
End Sub
End Class