C#:在给定4个组合框选择的情况下,立即更新小计文本框
这是我在StackOverflow上的第一篇帖子,善良点:D 我正在为课堂开发一个餐馆账单计算器。给用户输入四个组合框:饮料、开胃菜、主菜和甜点,我让代码计算小计、税和总额。对于每个组合框,我都有一个预定义项列表以及与每个项关联的值。我已经成功地编写了这个代码。当用户选择他们的项目时,我的小计、提示和总计文本框会自动更新。小计=价格+appPrice+mainPrice+dessPrice。税=小计*.1M。总计=小计+税金 我的问题:假设用户输入他们对每个类别(饮料、应用程序、主食、甜点)的选择。然后,假设用户返回饮料(combobox1)并决定将其从一个选项更改为另一个选项。即使选择了某个选项,我的代码也会将其他选项归零。类似地,假设用户输入所有四种选择,然后返回以更改其主菜(combobox3),我的代码保存Combox1和2(饮料和开胃菜),添加新选择的主菜,但将Combox4(甜点)置零 我知道这个问题是由于selectionindexchanged事件处理程序引起的。如果combobox2的选择发生更改,则它将计算Combox1和Combox2,但Combox3和Combox4中未发生更改,因此它将其还原为0值。对吧? 我相信答案是显而易见的,但我是个新手。谢谢 无论如何,这里是我的代码预览(对不起,我太啰嗦了):C#:在给定4个组合框选择的情况下,立即更新小计文本框,c#,combobox,textbox,C#,Combobox,Textbox,这是我在StackOverflow上的第一篇帖子,善良点:D 我正在为课堂开发一个餐馆账单计算器。给用户输入四个组合框:饮料、开胃菜、主菜和甜点,我让代码计算小计、税和总额。对于每个组合框,我都有一个预定义项列表以及与每个项关联的值。我已经成功地编写了这个代码。当用户选择他们的项目时,我的小计、提示和总计文本框会自动更新。小计=价格+appPrice+mainPrice+dessPrice。税=小计*.1M。总计=小计+税金 我的问题:假设用户输入他们对每个类别(饮料、应用程序、主食、甜点)的选
这是我的 之所以会发生这种情况,是因为在第一个处理程序中,您仅使用来自第一个组合框的计算填充文本框。您应该创建一个基于所有4个选定项目计算账单的函数,并在SelectedIndexChanged处理程序中调用该函数。基本上,您的方法应该执行上一个处理程序所执行的操作
private void comboBox1/2/3/4_SelectedIndexChanged(object sender, EventArgs e)
{
calculateBill();
}
private void calculateBill()
{
Menu dessSelect = comboBox4.SelectedItem as Menu;
Menu mainSelect = comboBox3.SelectedItem as Menu;
Menu appSelect = comboBox2.SelectedItem as Menu;
Menu bevSelect = comboBox1.SelectedItem as Menu;
textBox3.Text = Convert.ToString(bevSelect.bevPrice + appSelect.appPrice + mainSelect.mainPrice + dessSelect.dessPrice);
}
只要在任何一个组合框被更改时选中,我不确定这里的问题是什么。看来你要我们解释你写的代码。是这样吗?@KenWhite很抱歉这种含糊不清的说法,我想知道为什么它不能正常工作,以及如何修复它,但我已经想出了一个解决办法。非常感谢。比我快。我正要点击提交我的答案lol。我在textbox3.Text=Convert.ToString(x+y..+z)上得到一个“System.NullReferenceException”
private void comboBox1/2/3/4_SelectedIndexChanged(object sender, EventArgs e)
{
calculateBill();
}
private void calculateBill()
{
Menu dessSelect = comboBox4.SelectedItem as Menu;
Menu mainSelect = comboBox3.SelectedItem as Menu;
Menu appSelect = comboBox2.SelectedItem as Menu;
Menu bevSelect = comboBox1.SelectedItem as Menu;
textBox3.Text = Convert.ToString(bevSelect.bevPrice + appSelect.appPrice + mainSelect.mainPrice + dessSelect.dessPrice);
}