如何通过单击按钮在另一个窗体中正确打开C#windows窗体?

如何通过单击按钮在另一个窗体中正确打开C#windows窗体?,c#,winforms,C#,Winforms,!![在此处输入图像描述][1]我想设计一个c#windows窗体,当用户单击按钮时,会打开一个新窗体并获取一些值。然后我在父窗体中使用该值。 但是当我启动程序并单击按钮时,VisualStudio会打开一个空白的win表单,而我希望它会打开我以前设计的子表单。 那么原因是什么呢?我找不到任何解决办法。你的想法是什么? 代码如下: 表格1 表格2 乍一看,我觉得最突出的是你的第二种形式是这样定义的: public partial class Options : Form { //cod

!![在此处输入图像描述][1]我想设计一个c#windows窗体,当用户单击按钮时,会打开一个新窗体并获取一些值。然后我在父窗体中使用该值。 但是当我启动程序并单击按钮时,VisualStudio会打开一个空白的win表单,而我希望它会打开我以前设计的子表单。 那么原因是什么呢?我找不到任何解决办法。你的想法是什么? 代码如下:


表格1 表格2
乍一看,我觉得最突出的是你的第二种形式是这样定义的:

public partial class Options : Form
{
    //code
}
但是当您试图向用户显示它时,您使用的是
Form2
类,而不是
Options
类。尝试更改按钮1\u单击以下按钮:

private void button1__Click(object sender, EventArgs e)
{
    Options opt = new Options();
    opt.Show();
}
您可能还希望确保
选项
表单的构造函数正在调用
InitializeComponent
方法:

public partial class Options : Form
{
    public Options()
    {
        InitializeComponent();
    }

    private void btnOk_Click(object sender, EventArgs e)
    {
        //Coding for your Options' Form ok button
    }
}

抱歉耽误了你的时间,朋友们。通过@user3189142和Yorye的帮助,我终于找到了原因。:)谢谢大家!

子表单(选项)不完整。它缺少以下代码:



谢谢大家。

表单是空的,因为根本没有控件?构造函数正在调用
InitializeComponents
?它不是空的。我现在就要完成孩子的表格代码了。就我而言,空白意味着空白。设计表单和将值输入表单(或通过代码操作表单)之间存在差异您的问题可能是您正在打开一个新表单,或者您的构造函数没有如上所述调用
InitializeComponent
。的可能重复-如果您希望在每次单击按钮时打开同一实例,则需要保存对该实例的引用(而不是每次都使用
new
)这根本不能回答问题——“但当我启动程序并单击按钮时,Visual Studio会打开一个空白的win窗体,而我希望它会打开我以前设计的子窗体。那么原因是什么?”@Sayse OP说,该窗体实际上并不是空的,因为没有控件。这也是我理解的回答他的需要。在OP使问题更清楚之前,不能说它是无效答案。@YoryeNathan-唯一似乎清楚的是OP在打开表单时遇到问题,而不是返回这个答案解释的值。我同意这个问题不明确,请看这张照片。希望你能解决我的问题。:)@MojtabaShoja所以它是空的控制,你为什么说不是?您不是在构造函数中调用
InitializeComponent
,就是错误地实例化了错误的表单(另一个空表单)。@MojtabaShoja表单的构造函数是否调用
InitializeComponent
方法?我在user3189142处尝试过。没有回应。实际上,我在这里复制代码是个错误。最初两者都称为选项。对不起:))哪种形式的@user3189142?表格1?
public partial class Options : Form
{
    //code
}
private void button1__Click(object sender, EventArgs e)
{
    Options opt = new Options();
    opt.Show();
}
public partial class Options : Form
{
    public Options()
    {
        InitializeComponent();
    }

    private void btnOk_Click(object sender, EventArgs e)
    {
        //Coding for your Options' Form ok button
    }
}
 public Options()
    {
        InitializeComponent();
    }