WinForm+C#小案例--->用代码实现窗体设计的水果购物车小案例
·
需求如下:
1. 能够进行单选或者多选
2. 需要展示购买的商品名称以及对应的商品数量
3. 展示购买的总价格
效果预览:
步骤 1:创建 Winform 项目并设计界面

步骤 2:编写代码实现切换逻辑
using System;
using System.Text;
using System.Windows.Forms;
namespace 水果购物车
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//窗体加载事件
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = "0";
textBox2.Text = "0";
textBox3.Text = "0";
textBox4.Text = "0";
textBox5.Text = "0";
textBox6.Text = "0";
textBox7.Text = "0";
}
#region 按钮加减
//苹果减
private void button1_Click(object sender, EventArgs e)
{
int count = int.Parse(textBox1.Text);
if (count > 0)
{
count--;
textBox1.Text = count.ToString();
Shopping();
}
}
//苹果加
private void button2_Click(object sender, EventArgs e)
{
int count = int.Parse(textBox1.Text);
count++;
textBox1.Text = count.ToString();
Shopping();
}
//香蕉减
private void button4_Click(object sender, EventArgs e)
{
if (int.TryParse(textBox2.Text, out int count) && count > 0)
{
count--;
textBox2.Text = count.ToString();
Shopping();
}
}
//香蕉加
private void button3_Click(object sender, EventArgs e)
{
if (int.TryParse(textBox2.Text, out int count))
{
count++;
textBox2.Text = count.ToString();
Shopping();
}
}
//橘子减
private void button6_Click(object sender, EventArgs e)
{
if (int.TryParse(textBox3.Text, out int count) && count > 0)
{
count--;
textBox3.Text = count.ToString();
Shopping();
}
}
//橘子加
private void button5_Click(object sender, EventArgs e)
{
if (int.TryParse(textBox3.Text, out int count))
{
count++;
textBox3.Text = count.ToString();
Shopping();
}
}
//草莓减
private void button8_Click(object sender, EventArgs e)
{
if (int.TryParse(textBox4.Text, out int count))
{
count--;
textBox4.Text = count.ToString();
Shopping();
}
}
//草莓加
private void button7_Click(object sender, EventArgs e)
{
if (int.TryParse(textBox4.Text, out int count))
{
count++;
textBox4.Text = count.ToString();
Shopping();
}
}
//西瓜减
private void button10_Click(object sender, EventArgs e)
{
if (int.TryParse(textBox5.Text, out int count) && count > 0)
{
count--;
textBox5.Text = count.ToString();
Shopping();
}
}
//西瓜加
private void button9_Click(object sender, EventArgs e)
{
if (int.TryParse(textBox5.Text, out int count))
{
count++;
textBox5.Text = count.ToString();
Shopping();
}
}
//芒果减
private void button12_Click(object sender, EventArgs e)
{
if (int.TryParse(textBox6.Text, out int count) && count > 0)
{
count--;
textBox6.Text = count.ToString();
Shopping();
}
}
//芒果加
private void button11_Click(object sender, EventArgs e)
{
if (int.TryParse(textBox6.Text, out int count))
{
count++;
textBox6.Text = count.ToString();
Shopping();
}
}
//火龙果减
private void button14_Click(object sender, EventArgs e)
{
if (int.TryParse(textBox7.Text, out int count) && count > 0)
{
count--;
textBox7.Text = count.ToString();
Shopping();
}
}
//火龙果加
private void button13_Click(object sender, EventArgs e)
{
if (int.TryParse(textBox7.Text, out int count))
{
count++;
textBox7.Text = count.ToString();
Shopping();
}
}
#endregion
//全选
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
checkBox2.Checked = checkBox1.Checked;//苹果
checkBox3.Checked = checkBox1.Checked;//香蕉
checkBox4.Checked = checkBox1.Checked;//橘子
checkBox5.Checked = checkBox1.Checked;//草莓
checkBox6.Checked = checkBox1.Checked;//西瓜
checkBox7.Checked = checkBox1.Checked;//芒果
checkBox8.Checked = checkBox1.Checked;//火龙果
Shopping();
}
#region 单个商品
private void checkBox2_CheckedChanged(object sender, EventArgs e)
{
Shopping();
}
private void checkBox3_CheckedChanged(object sender, EventArgs e)
{
Shopping();
}
private void checkBox4_CheckedChanged(object sender, EventArgs e)
{
Shopping();
}
private void checkBox5_CheckedChanged(object sender, EventArgs e)
{
Shopping();
}
private void checkBox6_CheckedChanged(object sender, EventArgs e)
{
Shopping();
}
private void checkBox7_CheckedChanged(object sender, EventArgs e)
{
Shopping();
}
private void checkBox8_CheckedChanged(object sender, EventArgs e)
{
Shopping();
}
#endregion
// 购物信息与总金额计算
private void Shopping()
{
double totalPrice = 0;
StringBuilder purchaseInfo = new StringBuilder("您购买了:\n");
// 1. 苹果(checkBox2=苹果,textBox1=苹果数量)
if (checkBox2.Checked && int.TryParse(textBox1.Text, out int appleCount) && appleCount > 0)
{
double appleTotal = 3.58 * appleCount;
totalPrice += appleTotal;
purchaseInfo.AppendLine($"苹果:{appleCount}份(500g/份) 单价:{3.58:F2}元 小计:{appleTotal:F2}元");
}
// 2. 香蕉(checkBox3=香蕉,textBox2=香蕉数量)
if (checkBox3.Checked && int.TryParse(textBox2.Text, out int bananaCount) && bananaCount > 0)
{
double bananaTotal = 2.85 * bananaCount;
totalPrice += bananaTotal;
purchaseInfo.AppendLine($"香蕉:{bananaCount}份(500g/份) 单价:{2.85:F2}元 小计:{bananaTotal:F2}元");
}
// 3. 橘子(checkBox4=橘子,textBox3=橘子数量)
if (checkBox4.Checked && int.TryParse(textBox3.Text, out int orangeCount) && orangeCount > 0)
{
double orangeTotal = 5.68 * orangeCount;
totalPrice += orangeTotal;
purchaseInfo.AppendLine($"橘子:{orangeCount}份(500g/份) 单价:{5.68:F2}元 小计:{orangeTotal:F2}元");
}
// 4. 草莓(checkBox5=草莓,textBox4=草莓数量)
if (checkBox5.Checked && int.TryParse(textBox4.Text, out int strawberryCount) && strawberryCount > 0)
{
double strawberryTotal = 18.88 * strawberryCount;
totalPrice += strawberryTotal;
purchaseInfo.AppendLine($"草莓:{strawberryCount}份(500g/份) 单价:{18.88:F2}元 小计:{strawberryTotal:F2}元");
}
// 5. 西瓜(checkBox6=西瓜,textBox5=西瓜数量)
if (checkBox6.Checked && int.TryParse(textBox5.Text, out int watermelonCount) && watermelonCount > 0)
{
double watermelonTotal = 1.99 * watermelonCount;
totalPrice += watermelonTotal;
purchaseInfo.AppendLine($"西瓜:{watermelonCount}份(500g/份) 单价:{1.99:F2}元 小计:{watermelonTotal:F2}元");
}
// 6. 芒果(checkBox7=芒果,textBox6=芒果数量)
if (checkBox7.Checked && int.TryParse(textBox6.Text, out int mangoCount) && mangoCount > 0)
{
double mangoTotal = 7.88 * mangoCount;
totalPrice += mangoTotal;
purchaseInfo.AppendLine($"芒果:{mangoCount}份(500g/份) 单价:{7.88:F2}元 小计:{mangoTotal:F2}元");
}
// 7. 火龙果(checkBox8=火龙果,textBox7=火龙果数量)
if (checkBox8.Checked && int.TryParse(textBox7.Text, out int pitayaCount) && pitayaCount > 0)
{
double pitayaTotal = 6.55 * pitayaCount;
totalPrice += pitayaTotal;
purchaseInfo.AppendLine($"火龙果:{pitayaCount}份(500g/份) 单价:{6.55:F2}元 小计:{pitayaTotal:F2}元");
}
// 处理无选中商品/无购买数量的情况
if (purchaseInfo.ToString() == "您购买了:\n")
{
purchaseInfo.Clear();
purchaseInfo.Append("您购买了:暂无商品");
}
label4.Text = purchaseInfo.ToString();
label5.Text = $"总金额:{totalPrice:F2}元";
}
}
}
步骤3:效果演示

希望对大家有所帮助。感谢大家的关注和点赞。
更多推荐

所有评论(0)