源码:
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) |