如何打开第二个表格?

Posted

技术标签:

【中文标题】如何打开第二个表格?【英文标题】:How to open the second form? 【发布时间】:2011-08-08 18:12:21 【问题描述】:

我的项目中有 Form1 和 Form2。 Form2 只是一个带有 Form1 设置的表单。从 Form1 打开 Form2 的命令是什么,以及关闭它的命令是什么?

【问题讨论】:

【参考方案1】:

您需要处理因用户交互而引发的 Form1 上的 事件。例如,如果您有一个用户单击以显示设置表单 (Form2) 的“设置”按钮,您应该为该按钮处理 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();

【讨论】:

【参考方案2】:
//To open the form

Form2 form2 = new Form2();

form2.Show();
// And to close
form2.Close();

希望对你有帮助

【讨论】:

好的,谢谢,它很好用...如果我在 form2 中设置一些东西,比如 int a ....并且我希望在关闭 form2 后主 form1 知道 INT a 中的内容是什么? 好吧,既然你的主窗体上有一个 Form2 的实例,你总是可以有一个属性来访问该 int 值。只需确保在关闭表单之前存储该 int 值即可:)【参考方案3】:

如果你想以模态方式打开Form2(意味着你不能在Form2打开时点击Form1),你可以这样做:

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();

【讨论】:

【参考方案4】:

我假设您在谈论 Windows 窗体:

要显示您的表单,请使用 Show() 方法:

Form form2 = new Form();
form2.Show();

使用 Close() 关闭表单:

form2.Close();

【讨论】:

好的,谢谢,它很好用...如果我在 form2 中设置一些东西,比如 int a ....并且我希望在关闭 form2 后主 form1 知道 INT a 中的内容是什么? 【参考方案5】:

在一行中是:

(new Form2()).Show();

希望对你有帮助。

【讨论】:

【参考方案6】:

在任何点击事件(或其他点击事件)上:

Form2 frm2 = new Form2();
frm2.Show();

【讨论】:

【参考方案7】:

分别为Form.Show()(或Form.ShowDialog(),如果您希望第二种形式是模态的)和Form.Hide()(或Form.Close(),取决于您所说的close it)。

【讨论】:

【参考方案8】:

如果您需要将Form2 显示为modal dialog,请在Form1 中执行:

var form2 = new Form2();
if (form2.ShowDialog() == DialogResult.OK) 

    // process results here

模式对话框在打开时将保持焦点;它会将父窗口 (Form1) 设置为“在后台”,直到它关闭,这是设置窗口的常见做法。

【讨论】:

【参考方案9】:

从这个开始:

var dlg = new Form2();
dlg.ShowDialog();

【讨论】:

【参考方案10】:
Form1 OpenNewForm = new Form1();
OpenNewForm.Show();

“OpenNewForm”是表单的名称。 在第二个表单打开。

如果要关闭之前的表单:

this.Close();

【讨论】:

【参考方案11】:

在 C#.Net 中,如果您在解决方案内部和项目内部,并且 Form2(带有 Form2.cs)在内部,

 private void button1_Click(object sender, EventArgs e)
    
       ProjectName.Form2 secondaryForm= new ProjectName.Form2();

       secondaryForm.Show();
    

【讨论】:

以上是关于如何打开第二个表格?的主要内容,如果未能解决你的问题,请参考以下文章

如何专注于第二个选项卡并使用 selenium webdriver 处理它

打开第二个窗口后隐藏主窗口?另外,当第二个窗口被用户关闭时,主窗口如何重新出现?

打开excel时,提示更新链接

如何打开相邻选项卡中的第二个链接? [复制]

如何从第二个标签窗口打开第一个标签窗口的网址页面?

如何将R语言中的表格数据输出为Excel文件