作为Windows Form Development中的第一个用户,我想问一个简单的问题......
我在解决方案中创建了一个表单(MainWindow.cs),该表单在运行该解决方案时打开。
后期我创建了第二个表单(SecondWindow.cs)并创建了一个事件,以便可以通过单击按钮从第一个窗口调用它。当第二个窗口被填满时,第一个窗口(MainWindow.cs)将被禁用
现在我想在第二个窗口关闭时启用MainWindow.cs。
怎么做......
我已经拥有的一个简单的解决方案是隐藏MainWindow.cs,后者在关闭第二个窗口时创建第一个窗口的新对象并显示它。但是我认为这不是一个好方法,因为已经创建了一个对象由.net框架自动创建第一个窗口,为什么我们应该创建一个Mainwindow.cs的新对象。
第一个窗口代码(MainWindow.cs):
private void priceControllToolStripMenuItem_Click(object sender, EventArgs e)
{
SecondWindow price = new SecondWindow();
this.Enabled = false;
price.Show();
}
第二窗口代码(关闭SecondWindow.cs)
private void price_controll_FormClosed(object sender, FormClosedEventArgs e)
{
// what will goes here to make the MainWindow.cs to enable state
}
答案 0 :(得分:2)
使用price.ShowDialog()
将第二种形式显示为模态对话框。在您关闭第二个表单之前,主表单将被禁用:
private void priceControllToolStripMenuItem_Click(object sender, EventArgs e)
{
using(SecondWindow price = new SecondWindow())
price.ShowDialog();
}
答案 1 :(得分:0)
您可以将主表单作为所有者传递给第二个表单
private void priceControllToolStripMenuItem_Click(object sender, EventArgs e)
{
SecondWindow price = new SecondWindow() { Owner = this };
this.Enabled = false;
price.Show();
}
然后你可以从第二种形式引用它。
private void price_controll_FormClosed(object sender, FormClosedEventArgs e)
{
Owner.Enabled = true;
}