Si deux fenêtres sont ouvertes principalement A et B, comment fermer la fenêtre A à l'aide du code écrit sur la fenêtre B. P>
4 Réponses :
Votre meilleur pari serait de créer une propriété sur la fenêtre B que vous transmettez la fenêtre Création de la fenêtre. Quelque chose comme ça. J'ai une fenêtre nommée Mainwindow et une deuxième fenêtre nommée Window2.
forte> p> Dans votre commentaire, la fermeture d'une fenêtre créée par un autre formulaire est aussi simple que d'appeler la méthode de près du formulaire créé: P>
namespace WpfApplication1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
Window2 secondForm;
public MainWindow()
{
InitializeComponent();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
if (secondForm == null)
{
secondForm = new Window2();
secondForm.Show();
}
else
secondForm.Activate();
}
private void button2_Click(object sender, RoutedEventArgs e)
{
if (secondForm != null)
{
secondForm.Close();
secondForm = new Window2();
//How ever you are passing information to the secondWindow
secondForm.Show();
}
}
}
}
:- Bon travail. En fait, je veux fermer la fenêtre de Mainwindow. Merci d'avance.
@Anoopmohan fermeture d'un formulaire par la forme qui l'a créée est beaucoup plus facile, il suffit de conserver la référence au formulaire créé et d'appeler la méthode de près.
:- Merci Monsieur. . Maintenant, je peux fermer la fenêtre. Mais je dois faire une autre chose .. Je veux fermer la fenêtre et ouvrir la même fenêtre avec une valeur différente pendant le même événement. Désolé de vous déranger. . Merci d'avance. .
@AnoopMohan J'ai changé l'événement Button2_Click pour rouvrir la fenêtre, je ne suis pas sûr de quoi / comment la valeur est que vous passez à la secondWindow afin que je ne puisse pas être plus spécifique que cela.
Il est très simple, il est très simple de créer une classe publique et une méthode comme celle-ci appelez maintenant cette fonction de l'endroit où vous voulez près de la fenêtre comme celle-ci. P> Helper.CloseWindow(win);//win is object of window which you want to close.
Voici un moyen de fermer n'importe quelle fenêtre d'une autre fenêtre. Vous pouvez le modifier pour fonctionner avec plusieurs instances en donnant à votre Windows un identifiant unique, puis juste chercher cela dans la boucle de Foreach. ou avec un identifiant unique "Fudge": P > public static void CloseWIndowUsingIdentifier(string windowTag)
{
Assembly currentAssembly = Assembly.GetExecutingAssembly();
foreach (Window w in Application.Current.Windows)
{
if (w.GetType().Assembly == currentAssembly && w.Tag.Equals(windowTag))
{
w.Close();
break;
}
}
}
for (int intCounter = App.Current.Windows.Count - 1; intCounter > -1; intCounter--) { if (App.Current.Windows[intCounter].Name != "Main_Window_wind") App.Current.Windows[intCounter].Visibility = System.Windows.Visibility.Hidden; }
Veuillez ajouter quelques commentaires sur votre solution sur la raison pour laquelle et comment cela résout le problème