C# 用c语言显示多个消息框#
我正在制作一个单表单应用程序,并为我的GUI和事件处理程序创建了一个硬编码类 起初,messagebox只显示一次,但当我单击另一个按钮时,它会显示多次,每次单击按钮都会增加 我还没有创建一个未处理的异常,这与此有关吗?如果是未处理的异常,我该如何处理C# 用c语言显示多个消息框#,c#,.net,winforms,C#,.net,Winforms,我正在制作一个单表单应用程序,并为我的GUI和事件处理程序创建了一个硬编码类 起初,messagebox只显示一次,但当我单击另一个按钮时,它会显示多次,每次单击按钮都会增加 我还没有创建一个未处理的异常,这与此有关吗?如果是未处理的异常,我该如何处理 private void btnInventoryAddFanbelt_click(object sender, EventArgs e) { // CONTENTS // labels
private void btnInventoryAddFanbelt_click(object sender, EventArgs e)
{
// CONTENTS
// labels
lblFanbeltName.Name = "lblFanbeltName";
lblFanbeltName.Text = "Fanbelt name";
lblFanbeltName.Visible = true;
lblFanbeltName.Location = new Point(10, 10);
// textbox
txtFanbeltName.Name = "txtFanbeltName";
txtFanbeltName.Visible = true;
txtFanbeltName.Location = new Point(115, 8);
// buttons
btnInventorySaveFanbelt.Name = "btnInventorySaveFanbelt";
btnInventorySaveFanbelt.Text = "Add fanbelt";
btnInventorySaveFanbelt.Visible = true;
btnInventorySaveFanbelt.Location = new Point(125, 50);
// END OF CONTENTS
// REMOVE CONTROLS
split3.Panel2.Controls.Clear();
// ADD CONTROLS
split3.Panel2.Controls.Add(lblFanbeltName);
split3.Panel2.Controls.Add(txtFanbeltName);
split3.Panel2.Controls.Add(btnInventorySaveFanbelt);
// EVENTHANDLERS
btnInventorySaveFanbelt.Click += new EventHandler(btnInventorySaveFanbelt_click);
}
private void btnInventorySaveFanbelt_click(object sender, EventArgs e)
{
MessageBox.Show("Fanbelt added");
}
每次单击BTNinEventoryAddFanBelt时,都会添加另一个单击事件:
btnInventorySaveFanbelt.Click += new EventHandler(btnInventorySaveFanbelt_click);
只添加一次,通常最好在构造函数中或通过设计器添加。它也可以缩短为:
btnInventorySaveFanbelt.Click += btnInventorySaveFanbelt_click;
另外,split3.Panel2.Controls.Clear()代码>不处理控件,它只是删除它们,所以您在这里泄漏内存。尝试使用:
while (split3.Panel2.Controls.Count > 0) {
split3.Panel2.Controls[0].Dispose();
}
如果您需要帮助,我们需要查看一些代码需要更多信息,老兄,请提供您的按钮单击处理代码异常将使您的程序崩溃。您很可能是在显示对话框时使用了Show
,而不是ShowDialog
。否则,您将无法在不关闭框的情况下单击框外的任何内容first@CallumBradbury汪汪您可能多次分配该事件。