c#中用winform,使用面向对象的编程思想,实现商品的销售和退货订单功能并通过databinding在列表中显示,操作数据显示列表使用ListBox.如果可以的话,帮我写一下注释
以下是一个简单的示例代码,实现商品销售和退货订单功能,并使用 databinding 在 ListBox 中显示。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ProductSales
{
public partial class Form1 : Form
{
private List<Product> products; // 商品列表
private List<SaleOrder> saleOrders; // 销售订单列表
private List<ReturnOrder> returnOrders; // 退货订单列表
public Form1()
{
InitializeComponent();
// 初始化商品列表
products = new List<Product>();
products.Add(new Product("001", "手机", 2000));
products.Add(new Product("002", "电脑", 5000));
products.Add(new Product("003", "平板电脑", 3000));
// 初始化销售订单列表和退货订单列表
saleOrders = new List<SaleOrder>();
returnOrders = new List<ReturnOrder>();
// 绑定商品列表到 ListBox
listBoxProducts.DataSource = products;
listBoxProducts.DisplayMember = "Name"; // 显示商品名称
listBoxProducts.ValueMember = "Id"; // ListBox 中每个项对应的值是商品 ID
}
// 添加销售订单
private void buttonAddSaleOrder_Click(object sender, EventArgs e)
{
// 获取选中的商品
Product selectedProduct = listBoxProducts.SelectedItem as Product;
if (selectedProduct == null) return;
// 获取销售数量
int quantity = (int)numericUpDownQuantity.Value;
// 添加销售订单
SaleOrder saleOrder = new SaleOrder(selectedProduct, quantity);
saleOrders.Add(saleOrder);
// 刷新销售订单列表
listBoxSaleOrders.DataSource = null;
listBoxSaleOrders.DataSource = saleOrders;
}
// 添加退货订单
private void buttonAddReturnOrder_Click(object sender, EventArgs e)
{
// 获取选中的销售订单
SaleOrder selectedSaleOrder = listBoxSaleOrders.SelectedItem as SaleOrder;
if (selectedSaleOrder == null) return;
// 获取退货数量
int quantity = (int)numericUpDownQuantity.Value;
// 添加退货订单
ReturnOrder returnOrder = new ReturnOrder(selectedSaleOrder, quantity);
returnOrders.Add(returnOrder);
// 刷新退货订单列表
listBoxReturnOrders.DataSource = null;
listBoxReturnOrders.DataSource = returnOrders;
}
}
// 商品类
public class Product
{
public string Id { get; set; } // 商品 ID
public string Name { get; set; } // 商品名称
public decimal Price { get; set; } // 商品价格
public Product(string id, string name, decimal price)
{
Id = id;
Name = name;
Price = price;
}
// 重写 ToString 方法,返回商品名称和价格
public override string ToString()
{
return string.Format("{0} - {1:C}", Name, Price);
}
}
// 销售订单类
public class SaleOrder
{
public Product Product { get; set; } // 销售的商品
public int Quantity { get; set; } // 销售数量
public decimal TotalPrice { get { return Product.Price * Quantity; } } // 总价
public SaleOrder(Product product, int quantity)
{
Product = product;
Quantity = quantity;
}
// 重写 ToString 方法,返回销售订单信息
public override string ToString()
{
return string.Format("{0} x {1} = {2:C}", Product.Name, Quantity, TotalPrice);
}
}
// 退货订单类
public class ReturnOrder
{
public SaleOrder SaleOrder { get; set; } // 对应的销售订单
public int Quantity { get; set; } // 退货数量
public decimal Refund { get { return SaleOrder.Product.Price * Quantity; } } // 退款金额
public ReturnOrder(SaleOrder saleOrder, int quantity)
{
SaleOrder = saleOrder;
Quantity = quantity;
}
// 重写 ToString 方法,返回退货订单信息
public override string ToString()
{
return string.Format("{0} x {1} = {2:C}", SaleOrder.Product.Name, Quantity, Refund);
}
}
}

原文地址: http://www.cveoy.top/t/topic/saf 著作权归作者所有。请勿转载和采集!