我仍然在C#的学习阶段,如果你认为这是一个愚蠢的问题;-)打开一个新的窗口,但并不总是它的一个新实例
在该项目中,所以不要拍我我有主窗口,一个被称为“窗口1”
在主要的新窗口,我做的按钮时,会去窗口1这样的:现在
private void Button_Click(object sender, RoutedEventArgs e)
{
Window1 W1 = new Window1();
W1.Show();
this.Close();
}
,这正常工作,创建一个window1的新实例并在关闭主窗口时显示它。
但是,这里有一个问题:在window1中,一些东西可以改变,就像用户点击一个按钮,然后当一个新按钮显示时该按钮被隐藏。
而且我做了窗口1后退按钮,使用上述同样的代码,回到主窗口(所以现在新的窗口1,但新的主窗口)
但在这一点上,我在主点击,再按一次该按钮以转到window1,那个window1将回到默认状态。这对我来说似乎合乎逻辑,因为它在使用按钮时会创建一个新实例。
但是我应该怎么做,如果我想再次打开window1的第一个实例,那个已经被用户更改过的实例?
首先我想将Window1 W1 = new Window1();
放在按钮方法的外面,但是由于那个“后退”按钮,这也不起作用。
我希望我解释得很清楚我想做什么。
有什么想法吗?
=====================
EDIT 1:
使用从 “chrfin” 某些部分genarate错误代码示例中,像“可见=真”部分 也许这是因为我使用快递2010年,或者是因为我使用WPF而不是表单?
主:
Window1 W1 = null; // Initialise Field.
private void CalcTabel_Click(object sender, RoutedEventArgs e)
{
if (W1 == null)
{
W1 = new Window1();
W1.MainWindow = this; //ERROR
W1.Show();
}
else
W1.Visibility = Visibility.Visible;
this.Visibility = Visibility.Hidden;
}
在窗口1
public MainWindow w1 { get; set; }
private void Quit_Click(object sender, RoutedEventArgs e)
{
w1.Visibility = Visibility.Visible;
this.Visibility = Visibility.Hidden;
}
现在我得到的主要部分的错误是: “WpfApplication1.Window1”不包含'的定义MainWindow'接受类型'WpfApplication1.Window1'的第一个参数可以找到(你是否缺少using指令或程序集引用?)
just删除该错误行,将导致get,set部分不会得到任何东西。
有什么想法?
=====================
编辑1:
再次感谢名单 “chrfin” 得到它现在的工作:)
主:
Window1 W1 = null; // Initialise Field.
private void CalcTabel_Click(object sender, RoutedEventArgs e)
{
if (W1 == null)
{
W1 = new Window1();
W1.Hoofdmenu = this;
W1.Show();
}
else
W1.Visibility = Visibility.Visible;
this.Visibility = Visibility.Hidden;
}
在窗口1
:
public MainWindow Hoofdmenu { get; set; }
private void Quit_Click(object sender, RoutedEventArgs e)
{
Hoofdmenu.Visibility = Visibility.Visible;
this.Visibility = Visibility.Hidden;
}
- 解决 -
也许juste设置可见false? – 2012-01-12 08:52:38
我认为你可以'隐藏'窗口窗体并在以后将它带回 – V4Vendetta 2012-01-12 08:59:55
+1:在SO上,没有这样的事情是愚蠢的问题,只是严重问的问题。每个人都必须学习,只要他们努力使自己的问题清楚明白(你有) – 2012-01-12 11:22:08