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