Winform出现两次

xbo*_*nez 1 c# winforms

我正在创建一个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();
        }
Run Code Online (Sandbox Code Playgroud)

在出现的NewCat表单中,我有一个Cancel按钮.码:

        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();
        }
Run Code Online (Sandbox Code Playgroud)

我面临的问题是,当我点击Add时,会出现新表单.此时,如果单击"取消",表单将消失,但会立即显示该表单的新实例.然后我再次单击取消,表单消失.我的代码的哪一部分使表单出现两次.我检查了结构等,但无法弄明白.任何帮助或指示将不胜感激.

PS - 正如我所提到的,我是winforms编程的新手,所以任何提示或指针都会受到赞赏.

Adr*_*ong 6

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
}
Run Code Online (Sandbox Code Playgroud)