Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Winform出现两次_C#_Winforms - Fatal编程技术网

C# Winform出现两次

C# Winform出现两次,c#,winforms,C#,Winforms,我正在winforms中进行一个个人项目,只是为了获得一些经验,因为我以前从未有机会使用过它。所以,说到Winforms,我就是n00b。这就是我遇到的错误: 在BudgetTracker表单中,我有一个名为“AddCat”的按钮。下面是表单的构造函数和按钮的click eventHandler: public form_BudgetTracker() { InitializeComponent(); setEven

我正在winforms中进行一个个人项目,只是为了获得一些经验,因为我以前从未有机会使用过它。所以,说到Winforms,我就是n00b。这就是我遇到的错误:

在BudgetTracker表单中,我有一个名为“AddCat”的按钮。下面是表单的构造函数和按钮的click eventHandler:

        public form_BudgetTracker()
        {
            InitializeComponent();
            setEvents();
        }

        public void setEvents()
        {
            this.btn_AddCat.Click += new System.EventHandler(this.btn_AddCat_Click);
        }

        private void btn_AddCat_Click(object sender, EventArgs e)
        {
            form_NewCat NewCatForm = new form_NewCat();
            var NewCatFormResult = NewCatForm.ShowDialog();
            NewCatForm.Show();
        }
在出现的NewCat表单中,我有一个取消按钮。代码:

        public form_NewCat()
        {
            InitializeComponent();
            SetEvents();
        }

        private void SetEvents()
        {
            this.btn_Add.Click += new System.EventHandler(this.btn_Add_Click);
            this.btn_Cancel.Click += new System.EventHandler(this.btn_Cancel_Click);
        }

        private void btn_Cancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }
我面临的问题是,当我单击“添加”时,会出现新表单。此时,如果单击“取消”,表单将消失,但立即会出现表单的新实例。然后再次单击“取消”,表单将消失。 我的代码的哪一部分使表单出现了两次。我查了一下承包商等,但没弄明白。任何帮助或指点都将不胜感激

PS-正如我所提到的,我是winforms编程新手,因此任何提示或指针都将受到欢迎。

private void btn\u AddCat\u Click(对象发送者,事件参数e)
private void btn_AddCat_Click(object sender, EventArgs e)
{
    form_NewCat NewCatForm = new form_NewCat();
    var NewCatFormResult = NewCatForm.ShowDialog(); // <-- opens the first time
    NewCatForm.Show();                              // <-- opens the second time
}
{ form_NewCat NewCatForm=新form_NewCat(); var NewCatFormResult=NewCatForm.ShowDialog();//
private void btn\u AddCat\u Click(对象发送方,事件参数e)
{
form_NewCat NewCatForm=新form_NewCat();

var NewCatFormResult=NewCatForm.ShowDialog();//试着用F8键而不是运行代码,或者按F5键。它会一行一行地告诉你它将要执行什么。

试着用F8键而不是运行代码,或者按F5键来遍历代码。它会一行一行地告诉你它将要执行什么。

从你的代码判断,你只是简单地错了翅膀的形式两次

        form_NewCat NewCatForm = new form_NewCat(); 
        var NewCatFormResult = NewCatForm.ShowDialog(); 
        NewCatForm.Show(); 
第二行显示表单并阻止方法,直到设置DialogResult,然后第三行显示表单而不阻止方法


只需删除第三行!

从您的代码判断,您只需将表单显示两次

        form_NewCat NewCatForm = new form_NewCat(); 
        var NewCatFormResult = NewCatForm.ShowDialog(); 
        NewCatForm.Show(); 
第二行显示表单并阻止方法,直到设置DialogResult,然后第三行显示表单而不阻止方法


只需删除第三行!

删除NewCatForm.Show();

删除NewCatForm.Show();

啊,好的。这就可以解释了。谢谢你。啊,好的。这就可以解释了。谢谢你。