Chinaunix首页 | 论坛 | 博客
  • 博客访问: 113349
  • 博文数量: 41
  • 博客积分: 2535
  • 博客等级: 少校
  • 技术积分: 445
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-19 08:50
文章分类
文章存档

2011年(2)

2010年(6)

2008年(7)

2007年(25)

2006年(1)

我的朋友
最近访客

分类:

2010-11-11 14:03:23

 
 
源码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
namespace MyContact
{
    public partial class MainForm : Form
    {
        ContactBook contactBook = new ContactBook();
        public MainForm()
        {
            InitializeComponent();
        }
        private void btnAdd_Click(object sender, EventArgs e)
        {
            CommForm addForm = new CommForm();
            addForm.ShowDialog();
            if (addForm.onValid == false)
            {
                return;
            }
            if (string.IsNullOrWhiteSpace(addForm.txtName.Text))
            {
                MessageBox.Show("输入数据有误!", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            else
            {
                Contact per = new Contact(addForm.txtName.Text, addForm.txtTelphone.Text, addForm.txtAddress.Text, addForm.txtRemark.Text);
                contactBook.Add(per);
                ListViewItem item = new ListViewItem(new string[] { addForm.txtName.Text, addForm.txtTelphone.Text, addForm.txtAddress.Text, addForm.txtRemark.Text });
                listContact.Items.Add(item);
            }
        }
        private void btnTest_Click(object sender, EventArgs e)
        {
            Contact per1 = new Contact("Chevalier", "13682427327", "sz", "");
            Contact per2 = new Contact("Rose", "15876983213", "gz", "");
            contactBook.Add(per1);
            contactBook.Add(per2);
            //file ops
            FileStream fs = new FileStream(Application.StartupPath + "", FileMode.OpenOrCreate, FileAccess.ReadWrite);
            IFormatter fmt = new BinaryFormatter();
            fmt.Serialize(fs, contactBook);
            fs.Close();
        }
        private void MainForm_Load(object sender, EventArgs e)
        {
            try
            {
                FileStream fs = new FileStream(Application.StartupPath + "", FileMode.OpenOrCreate, FileAccess.ReadWrite);
                IFormatter fmt = new BinaryFormatter();
                contactBook = (ContactBook)fmt.Deserialize(fs);
                fs.Close();
            }
            catch
            {
                MessageBox.Show("出现严重错误:" + e.ToString(), "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            ListViewItem[] items = new ListViewItem[contactBook.Count];
            int index = 0;
            foreach (Contact i in contactBook)
            {
                items[index] = new ListViewItem(new string[] { i.Name, i.Telphone, i.Address, i.Remark });
                index++;
            }
            listContact.Items.AddRange(items);
        }
        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (listContact.SelectedItems.Count == 0)
            {
                MessageBox.Show("未有选择数据!", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            foreach (ListViewItem item in listContact.SelectedItems)
            {
                contactBook.RemoveAt(item.Index);
                item.Remove();
            }
        }
        private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (MessageBox.Show("是否保存修改?", "保存", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                try
                {
                    FileStream fs = new FileStream(Application.StartupPath + "", FileMode.OpenOrCreate, FileAccess.ReadWrite);
                    IFormatter fmt = new BinaryFormatter();
                    fmt.Serialize(fs, contactBook);
                    fs.Close();
                }
                catch
                {
                    MessageBox.Show("出现严重错误:" + e.ToString(), "错误!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
        private void btnModify_Click(object sender, EventArgs e)
        {
            if (listContact.SelectedItems.Count == 0)
            {
                MessageBox.Show("未有选择数据!", "错误!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            foreach (ListViewItem item in listContact.SelectedItems)
            {
                CommForm modifyForm = new CommForm();
                modifyForm.txtName.Text = item.SubItems[0].Text;
                modifyForm.txtTelphone.Text = item.SubItems[1].Text;
                modifyForm.txtAddress.Text = item.SubItems[2].Text;
                modifyForm.txtRemark.Text = item.SubItems[3].Text;
                modifyForm.ShowDialog();
                if (modifyForm.onValid)
                {
                    contactBook[item.Index].Name = modifyForm.txtName.Text;
                    contactBook[item.Index].Telphone = modifyForm.txtTelphone.Text;
                    contactBook[item.Index].Address = modifyForm.txtAddress.Text;
                    contactBook[item.Index].Remark = modifyForm.txtRemark.Text;
                    item.SubItems[0].Text = modifyForm.txtName.Text;
                    item.SubItems[1].Text = modifyForm.txtTelphone.Text;
                    item.SubItems[2].Text = modifyForm.txtAddress.Text;
                    item.SubItems[3].Text = modifyForm.txtRemark.Text;
                }
            }
        }
        private void btnFind_Click(object sender, EventArgs e)
        {
            foreach (ListViewItem item in listContact.Items)
            {
                if (item.SubItems[0].Text.ToLower().Contains(textKeyword.Text.ToLower()))
                {
                    item.Selected = true;
                    item.BackColor = Color.Azure;
                }
            }
            listContact.Focus();
        }
    }
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace MyContact
{
    public partial class CommForm : Form
    {
        public bool onValid=false;
        public CommForm()
        {
            InitializeComponent();
        }
        private void btnOK_Click(object sender, EventArgs e)
        {
            onValid = true;
            this.Close();
        }
        private void btnCancel_Click(object sender, EventArgs e)
        {
            onValid = false;
            this.Close();
        }
    }
}
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MyContact
{
    [Serializable]
    class ContactBook:CollectionBase
    {
        public void Add(Contact contact)
        {
            List.Add(contact);
        }
        public void Remove(Contact contact)
        {
            List.Remove(contact);
        }
        public Contact this[int index]
        {
            get
            {
                return (Contact)List[index];
            }
            set
            {
                List[index] = value;
            }
        }
    }
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MyContact
{
    [Serializable]
    class Contact
    {
        public string Name;
        public string Telphone;
        public string Address;
        public string Remark;
        public Contact(string name, string telphone, string address, string remark)
        {
            this.Name = name;
            this.Telphone = telphone;
            this.Address = address;
            this.Remark = remark;
        }
    }
}

 
文件: MyContact.rar
大小: 670KB
下载: 下载
阅读(1629) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~