C# 更新列表中项目的文本框控件计数<&燃气轮机;当它';s使用自定义事件C清除#
我有一个主窗体,它包含两个只读文本框和两个按钮,可以打开用户想要显示的PizzaCreatorForms的任意多个实例,其他按钮显示PizzaOrdersListViewForm的一个实例。这两个只读文本框跟踪显示了多少PizzaCreatorForm实例(这部分有效),另一个跟踪创建了多少项(这部分也有效) 我应该补充一点,PizzaCreatorForm创建的每个对象都会添加到列表中,以及listView.Items控件中的PizzaOrdersListViews中。主窗体和PizzaOrderListViewForm中还有一个清除按钮,用于清除列表 我的代码可以工作,但我遇到了两个问题C# 更新列表中项目的文本框控件计数<&燃气轮机;当它';s使用自定义事件C清除#,c#,windows,winforms,windows-applications,C#,Windows,Winforms,Windows Applications,我有一个主窗体,它包含两个只读文本框和两个按钮,可以打开用户想要显示的PizzaCreatorForms的任意多个实例,其他按钮显示PizzaOrdersListViewForm的一个实例。这两个只读文本框跟踪显示了多少PizzaCreatorForm实例(这部分有效),另一个跟踪创建了多少项(这部分也有效) 我应该补充一点,PizzaCreatorForm创建的每个对象都会添加到列表中,以及listView.Items控件中的PizzaOrdersListViews中。主窗体和PizzaOrd
public partial class Form1 : Form
{
public static List<Pizza> pizzaList = new List<Pizza>();
public List<Pizza> PizzaList
{
get { return pizzaList; }
set { pizzaList = value; }
}
//Where PizzaOrdersListViewForm is instantiated
private void displayOrdersToolStripMenuItem_Click(object sender, EventArgs e)
{
PizzaOrdersListViewForm orderListV = new PizzaOrdersListViewForm();
}
//Where PizzaCreatorForm is instantiated
private void newPizzaOrder_Click(object sender, EventArgs e)
{
PizzaCreatorForm pizzaForms = new PizzaCreatorForm(this);
pizzaForms.PizzaInList += PizzaInListHandler;
pizzasCreatedCounterTextBox.TextChanged += PizzaInListHandler;
}
public void PizzaInListHandler(object sender, EventArgs e)
{
pizzasCreatedCounterTextBox.Text = pizzaList.Count.ToString();
}
public void ClearMainListChangeHandler(object sender, EventArgs e)
{
pizzaList.Clear();
}
}
public partial class PizzaCreatorForm : Form
{
public EventHandler PizzaInList;
public Pizza Order
{
//Code that assigns Pizza class member variables to control values
}
Form1 MainForm = null;
public PizzaCreatorForm(Form1 mForm)
{
InitializeComponent();
MainForm = mForm
}
private void orderNewPizaaToolStripButton_Click(object sender, EventArgs e)
{
if(PizzaInList != null)
{
PizzaInList(this, new EventArgs());
}
MainForm.PizzaList.Add(Order);
Order = new Pizza();
}
}
public partial class PizzaOrdersListViewForm : Form
{
public EventHandler ClearMainList;
Form1 mainForm = null;
public PizzaOrdersListViewForm(Form1 TheMain)
{
InitializeComponent();
mainForm = TheMain;
}
private void clearToolStripButton_Click(object sender, EventArgs e)
{
if(ClearMainList != null)
{
ClearMainList(this, new EventArgs());
}
ClearMainList += mainForm.ClearMainListChangeHandler;
pizzaListView.Items.Clear();
}
}
PizzaOrdersListViewForm
public partial class Form1 : Form
{
public static List<Pizza> pizzaList = new List<Pizza>();
public List<Pizza> PizzaList
{
get { return pizzaList; }
set { pizzaList = value; }
}
//Where PizzaOrdersListViewForm is instantiated
private void displayOrdersToolStripMenuItem_Click(object sender, EventArgs e)
{
PizzaOrdersListViewForm orderListV = new PizzaOrdersListViewForm();
}
//Where PizzaCreatorForm is instantiated
private void newPizzaOrder_Click(object sender, EventArgs e)
{
PizzaCreatorForm pizzaForms = new PizzaCreatorForm(this);
pizzaForms.PizzaInList += PizzaInListHandler;
pizzasCreatedCounterTextBox.TextChanged += PizzaInListHandler;
}
public void PizzaInListHandler(object sender, EventArgs e)
{
pizzasCreatedCounterTextBox.Text = pizzaList.Count.ToString();
}
public void ClearMainListChangeHandler(object sender, EventArgs e)
{
pizzaList.Clear();
}
}
public partial class PizzaCreatorForm : Form
{
public EventHandler PizzaInList;
public Pizza Order
{
//Code that assigns Pizza class member variables to control values
}
Form1 MainForm = null;
public PizzaCreatorForm(Form1 mForm)
{
InitializeComponent();
MainForm = mForm
}
private void orderNewPizaaToolStripButton_Click(object sender, EventArgs e)
{
if(PizzaInList != null)
{
PizzaInList(this, new EventArgs());
}
MainForm.PizzaList.Add(Order);
Order = new Pizza();
}
}
public partial class PizzaOrdersListViewForm : Form
{
public EventHandler ClearMainList;
Form1 mainForm = null;
public PizzaOrdersListViewForm(Form1 TheMain)
{
InitializeComponent();
mainForm = TheMain;
}
private void clearToolStripButton_Click(object sender, EventArgs e)
{
if(ClearMainList != null)
{
ClearMainList(this, new EventArgs());
}
ClearMainList += mainForm.ClearMainListChangeHandler;
pizzaListView.Items.Clear();
}
}
我所要做的就是将PizzaOrdersListViewForm ClearMainList事件处理程序订阅到MainForm中DisplayOrdersTolsTripMenuItem\u Click方法中的自定义PizzaInListHandler方法
private void displayOrdersToolStripMenuItem_Click(object sender, EventArgs e)
{
PizzaOrdersListViewForm orderListV = new PizzaOrdersListViewForm();
orderListV.ClearMainList += ClearMainListChangeHandler;
orderListV.ClearMainList += PizzaInListHandler;
}
我在比萨饼清单上发现了我的错误。当我应该选择返回列表中元素总数的计数时,我意外地使用了计数来计算每个项目的顺序