我在我的项目中有Form1和Form2。 Form2只是Form1的一个设置窗体。请从Form1中打开Form2的命令是什么以及关闭它的命令是什么?如何打开第二个窗体?
回答
您需要处理由于用户交互而引发的Form1上的事件。举例来说,如果你有一个“设置”按钮,用户点击以显示设置窗体(Form),你应该处理Click
事件该按钮:
private void settingsButton_Click(Object sender, EventArgs e)
{
// Create a new instance of the Form2 class
Form2 settingsForm = new Form2();
// Show the settings form
settingsForm.Show();
}
除了Show
method,你也可以选择使用ShowDialog
method。不同之处在于后者将窗体显示为模态对话框,这意味着用户在关闭模态窗体之前无法与应用程序中的其他窗体进行交互。这与消息框的工作方式相同。 ShowDialog
方法还返回一个值,指示窗体如何关闭。
当用户关闭的设置形式(通过单击标题栏中的“X”,例如),Windows将自动采取关闭它的照顾。
如果希望用户要求将其关闭之前,自己关闭它,你可以调用窗体的Close
method:
this.Close();
用户点击事件(或另一种):
Form2 frm2 = new Form2();
frm2.Show();
如果你需要显示Form2
为modal dialog,从Form1
内做到:
var form2 = new Form2();
if (form2.ShowDialog() == DialogResult.OK)
{
// process results here
}
模式对话框将保留焦点,而它是开放的;它会将父窗口(Form1
)设置为“在后台”,直到它被关闭,这对于设置窗口来说是相当常见的做法。
我假设你在谈论Windows窗体:
要显示的形式使用Show()方法:
Form form2 = new Form();
form2.Show();
关闭窗体使用关闭():
form2.Close();
好的,谢谢你,它工作的很好......如果我在form2中设置类似于int a的东西......并且我想关闭form2后的主form1知道INT中的是什么? – Nasgharet 2011-04-19 14:57:08
从此开始:
var dlg = new Form2();
dlg.ShowDialog();
分别Form.Show()(或者,如果你想第二种形式是模态Form.ShowDialog()),和Form.Hide()(或Form.Close(),取决于你的意思是close it
)。
//To open the form
Form2 form2 = new Form2();
form2.Show();
// And to close
form2.Close();
希望这有助于
如果你想打开Form2
模态(这意味着你不能在Form1上单击窗体2时是打开的),你可以这样做:
using (Form2 f2 = new Form2())
{
f2.ShowDialog(this);
}
如果您想要以非模态方式打开Form2(意味着您仍然可以在Form2打开时单击Form1),则可以创建Form2的表单级引用,如下所示:
private Form2 _f2;
public void openForm2()
{
_f2 = new Form2();
_f2.Show(this); // the "this" is important, as this will keep Form2 open above
// Form1.
}
public void closeForm2()
{
_f2.Close();
_f2.Dispose();
}
在单行那就是:
(new Form2()).Show();
希望它能帮助。
- 1. 如何在第一个窗体已经加载时打开第二个窗体作为对话框?
- 2. japplet打开第二个窗口
- 3. 从IBAction打开第二个窗口
- 4. 在PyQt中打开第二个窗口
- 5. 确定第二个窗体打开时的发件人?
- 6. 如何在开始时在主窗体顶部显示第二个窗体?
- 7. window.showModalDialog打开第二个窗口,如何阻止它?
- 8. ASP.NET如何打开第一个close()事件的第二个弹出窗口
- 9. 第二个JOptionPane.showInputDialog不打开
- 10. 如何打开窗体?
- 11. 从已打开的对话窗口打开第二个对话窗口
- 12. 第一次窗体验证后移至第二个窗体javascript
- 13. ASP.Net:如何打开第二个窗口并在主窗口中写入内容?
- 14. 从外部开始打开第二个JavaFX窗口
- 15. 如何从另一个孩子窗体打开孩子窗体?
- 16. 如何在c backgroundworker中打开另一个窗体窗体#
- 17. 如何杀死第二和第三个打开的EXCEL.EXE?
- 18. Python,程序打开和关闭第二个第二个
- 19. 从第二个Windows窗体获取值
- 20. 在第二个窗体上复制DataGridView
- 21. 在WPF中显示第二个窗体
- 22. 用pyqt5和qt设计器打开第二个窗口
- 23. 在Python 3中使用QTDesigner 5打开第二个窗口
- 24. 如何将一个窗体重定向到另一个窗体并将值传递给第二个窗体?
- 25. 如何在第二个窗体处于活动状态时禁用窗体
- 26. 如何打开一个窗体,如果窗体位于另一个文件夹
- 27. 从jquery中的第一个顶部的另一个窗体打开第二个对话框
- 28. 如何使用NSIS在后台打开第二个Internet Explorer窗口
- 29. 使用Tkinter iwant打开第二个窗口,然后关闭前一个窗口
- 30. 如何检查窗体是否有任何ShowDialog()窗体打开?
我抬头看到的所有其他答案都返回了一个错误!你的答案在这里工作。谢谢<3 – 2017-07-14 23:35:47