点名器
1.搭建窗体
点名器实现页面效果图
需要实现功能块
统计添加后的姓名
添加页面
删除页面
修改页面
首先创建一个Person类 用到了List<T> 集合初始化
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.Serialization.Formatters.Binary; using System.Text; using System.Threading.Tasks; namespace 点名器 { [Serializable] public class Person { public List<Person> list = new List<Person>(); public string name { get; set; } public string imageindex { get; set; } public void Save() { FileStream fs = new FileStream("save.bin",FileMode .OpenOrCreate);//导命名空间using System.IO; BinaryFormatter bf = new BinaryFormatter(); //导命名空间using System.Runtime.Serialization.Formatters.Binary; bf.Serialize(fs, list); fs.Close(); } public void Return() { //首先定义一个数组 FileStream fs = new FileStream("save.bin",FileMode.Open); BinaryFormatter bf = new BinaryFormatter(); list = (List< Person>) bf.Deserialize(fs); } } }
在主窗体中调用各页面,和Timer事件 在退出的时候保存用到了序列化和反序列化
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 点名器 { public partial class FrmMain : Form { public FrmMain() { InitializeComponent(); } List<Person> List = new List<Person>(); Person Main = new Person(); private void FrmMain_Load(object sender, EventArgs e) { //主窗体页面 Main.Return(); List = Main.list; } private void btnEntry_Click(object sender, EventArgs e) { //登录按钮 this.timer.Enabled = true; } private void btnCease_Click(object sender, EventArgs e) { //停止按钮 this.timer.Enabled = false; } int i = 0; private void timer_Tick(object sender, EventArgs e) { //时间控件 if (i < List.Count) { txtFortunate.Text = List[i].name; //把图片放在bin目录下 新建文件夹下中 this.pictureBox1.Image = Image.FromFile("新建文件夹\\"+i+".jpg");//图片 i++; } else { i = 0; } } private void 查询ToolStripMenuItem_Click(object sender, EventArgs e) { //查询 FrmInquiry frm = new FrmInquiry(); frm.Inquiry.list = List; frm.Show(); } private void 增加ToolStripMenuItem_Click(object sender, EventArgs e) { //增加 FrmAdd frm = new FrmAdd(); frm.adds.list = List; frm.Show(); } private void 删除ToolStripMenuItem_Click(object sender, EventArgs e) { //删除 FrmAdd frm = new FrmAdd(); frm.adds.list = List; frm.num = 1; frm.btnAdd.Text = "删除"; frm.Text = "删除"; frm.lblName.Text = "请输入要删除的人"; frm.Show(); } private void 修改ToolStripMenuItem_Click(object sender, EventArgs e) { //修改 FrmRevise frm = new FrmRevise(); frm.Revise.list = List; frm.Show(); } private void FrmMain_FormClosing(object sender, FormClosingEventArgs e) { DialogResult result = MessageBox.Show("是否保存?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); if (result == DialogResult.OK) { Main.Save(); MessageBox.Show("保存成功!"); } } } }
统计人数 用到了forearm遍历输出
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 点名器 { public partial class FrmInquiry : Form { public FrmInquiry() { InitializeComponent(); } public Person Inquiry = new Person(); private void FrmInquiry_Load(object sender, EventArgs e) { foreach (Person item in Inquiry.list) { listBox.Items.Add(item.name); } } } }
1添加和删除用到了同一个页面(窗体的复用),实现了各自的功能块
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 点名器 { public partial class FrmAdd : Form { public FrmAdd() { InitializeComponent(); } public Person adds = new Person(); public int num = 0; Person ps = new Person(); private void btnAdd_Click(object sender, EventArgs e) { if(string.IsNullOrEmpty(txtName.Text)) { MessageBox.Show("不能为空!"); return; } if (num == 0) { ps.name = this.txtName.Text; foreach (Person item in adds.list) { if (item.name == ps.name) { MessageBox.Show("已经存在!"); return; } } adds.list.Add(ps); MessageBox.Show("增加成功!"); txtName.Text = ""; } else { ps.name = this.txtName.Text; foreach (Person item in adds.list ) { if (item.name == ps.name) { adds.list.Remove(item); MessageBox.Show("删除成功!"); return; } } MessageBox.Show("删除失败!"); } txtName.Text = ""; txtName.Focus(); } } }
1.修改中,判断了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 点名器 { public partial class FrmRevise : Form { public FrmRevise() { InitializeComponent(); } public Person Revise = new Person(); private void btnRevise_Click(object sender, EventArgs e) { Person ps = new Person(); ps.name = this.txtFront.Text; foreach (Person item in Revise.list) { if (item.name == this.txtFront.Text) { DialogResult result = MessageBox.Show("是否修改?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); if (result == DialogResult.OK) { item.name = txtBehind.Text; MessageBox.Show("修改成功!"); return; } else { MessageBox.Show("修改失败!"); txtFront.Focus(); return; } } } MessageBox.Show("没有此人!"); } } }