我们来分类看看其中的魅力代码:
1.租车的界面功能
01.租车按钮
//点击租车触发的事件
private void btn_zu_Click(object sender, EventArgs e)
{
//确保选中一行
if(lvlist.SelectedItems.Count==0)
{
MessageBox.Show("请选中一行!");
return;
}
//确保有人租车
if (txt_name.Text=="")
{
MessageBox.Show("请输入姓名!");
return;
}
//执行租车.
//获取车牌号的值
string carnum = lvlist.SelectedItems[0].Text;
//根据车牌号获得此车对象
Vehicle ve= vehicles[carnum];
//直接把获得要租的信息放入rentvehicles集合
rentvehicles.Add(carnum,ve);
//删除原来的集合
vehicles.Remove(carnum);
//重新加载
New(vehicles,lvlist);
MessageBox.Show("租车成功");
02.刷新按钮
//刷新按钮
private void btn_new_Click(object sender, EventArgs e)
{
//重新加载
New(vehicles, lvlist);
}
这里的刷新定义了一个方法,也就是动态加载ListView的方法(Nuw方法)
这个方法有两个参数,第一个参数传入车辆类型集合对象,第二个传入Listview的名字
这样的作用就是在租车和还车时都能使用此方法进行刷新,岂不妙哉!
//动态加载listview的方法
public void New(Dictionary<string,Vehicle> list,ListView lvlist)
{
//初始化LIstviewItem对象
ListViewItem listview = null;
//清除Listview,以免有冲突的值
lvlist.Items.Clear();
foreach (Vehicle item in list.Values)
{
//判断赋值
if (item is Car)
{
listview = new ListViewItem();
listview.Text = item.LicenseNo;
listview.SubItems.Add(item.Name);
listview.SubItems.Add(item.Color);
listview.SubItems.Add(item.RentDate.ToString());
listview.SubItems.Add(item.DailyRent.ToString());
}
else if (item is Truck)
{
listview = new ListViewItem();
listview.Text = item.LicenseNo;
listview.SubItems.Add(item.Name);
listview.SubItems.Add(item.Color);
listview.SubItems.Add(item.RentDate.ToString());
listview.SubItems.Add(item.DailyRent.ToString());
listview.SubItems.Add(((Truck)item).Load.ToString());
}
//关联
lvlist.Items.Add(listview);
}
}
2.还车的界面功能
01.选择结算按钮










