生活随笔
收集整理的這篇文章主要介紹了
【C#】制作通讯录
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
C#制作通訊錄
功能說明
<1>四個功能:添加、刪除、修改、查找
<2>添加功能:單擊添加功能,從彈窗中添加數(shù)據(jù),該功能主要是對文件進(jìn)行操作,因此添加完listview不會顯示新添加的數(shù)據(jù),關(guān)閉彈窗,單擊主界面更新按鈕,列表就會顯示出剛剛添加的條目(一次添加一條數(shù)據(jù))
<3>刪除功能,直接對文件進(jìn)行操作實現(xiàn)刪除功能,該功能實時顯示,單擊數(shù)據(jù)項并刪除后,listview內(nèi)和文件內(nèi)數(shù)據(jù)同時刪除
<4>修改功能:選中一行記錄,單擊修改功能, 主窗口跳出修改的組件,在組件內(nèi)修改后單擊更新按鈕,listview內(nèi)數(shù)據(jù)更新,該操作實現(xiàn)的是對listview的操作,關(guān)閉頁面后,提示是否應(yīng)用到通訊錄,單擊是,對應(yīng)TXT文件內(nèi)數(shù)據(jù)會更新,單擊否,則更改不會保存到TXT文件
<5>查找功能:單擊查找按鈕,跳出查找的彈窗,輸入關(guān)鍵字進(jìn)行實時檢索,系統(tǒng)匹配數(shù)據(jù)項,只要包含輸入的關(guān)鍵字的數(shù)據(jù)項都會被檢索出來顯示在列表內(nèi)
缺陷總結(jié)
<1>沒有嚴(yán)格控制輸入格式,如手機號碼尾數(shù)不等于11||6時提示輸入有誤;
<2>子窗口添加數(shù)據(jù)項沒有在父窗口實時顯示,借助了更新按鈕;
<3>查找listview內(nèi)數(shù)據(jù)項和加載txt文件內(nèi)數(shù)據(jù)項到listview內(nèi)基本是遍歷的思想,大型工程不合適
Form_main.cs
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
;
using System
.IO
;namespace exam
{public partial class Form_main : Form{private Boolean ischange
= true;public Form_main(){InitializeComponent();}public void addlistviewitem(String
[] a
){ListViewItem item
= new ListViewItem(a
);listView1
.Items
.Add(item
);}public void save(){FileStream fs
= new FileStream(@"通訊錄.txt", FileMode
.Create
, FileAccess
.Write
);StreamWriter sw
= new StreamWriter(fs
, Encoding
.Default
);for (int i
= 0; i
< this.listView1
.Items
.Count
; i
++){sw
.WriteLine(string.Format("{0}|{1}|{2}", listView1
.Items
[i
].SubItems
[0].Text
,listView1
.Items
[i
].SubItems
[1].Text
, listView1
.Items
[i
].SubItems
[2].Text
));}sw
.Close();fs
.Close();}private void Form_main_Load(object sender
, EventArgs e
){String
[] a
= File
.ReadAllLines(@"通訊錄.txt", Encoding
.Default
);for (int i
= 0; i
< a
.Length
; i
++){string[] ax
= a
[i
].Split(new String[] { "|" }, StringSplitOptions
.None
);addlistviewitem(ax
);}}private void toolStrip_delete_Click(object sender
, EventArgs e
){ischange
= true;for (int i
= listView1
.SelectedItems
.Count
- 1; i
>= 0; i
--){ListViewItem item
= listView1
.SelectedItems
[i
];listView1
.Items
.Remove(item
);}save();}private void toolStrip_add_Click(object sender
, EventArgs e
){Form_add Form_Add
= new Form_add();Form_Add
.Show();}private void toolStrip_search_Click(object sender
, EventArgs e
){Form_search form_Search
= new Form_search();form_Search
.Show();}private void listView1_SelectedIndexChanged(object sender
, EventArgs e
){if (panel1
.Visible
== true){panel1
.Visible
= false;}else{panel1
.Visible
= true;}}private void toolStripButton_edit_Click(object sender
, EventArgs e
){if (panel1
.Visible
== true){panel1
.Visible
= false;}else{panel1
.Visible
= true;}}private void button_update_Click(object sender
, EventArgs e
){ischange
= true;if (listView1
.SelectedItems
.Count
>= 1){ListViewItem item
= listView1
.SelectedItems
[listView1
.SelectedItems
.Count
- 1];if (!textBox_name
.Text
.Contains("|") && !textBox_class
.Text
.Contains("|") && !textBox_Tel
.Text
.Contains("|")){if (textBox_name
.Text
!= ""){item
.SubItems
[0].Text
= textBox_name
.Text
;item
.SubItems
[1].Text
= textBox_class
.Text
;item
.SubItems
[2].Text
= textBox_Tel
.Text
;save();MessageBox
.Show("修改成功");textBox_name
.Clear();textBox_class
.Clear();textBox_Tel
.Clear();MessageBox
.Show("請選中一行需要修改的數(shù)據(jù)");}}else MessageBox
.Show("修改失敗,字符“|不是系統(tǒng)定義的特殊字符,請重新輸入");}}private void listView1_Click(object sender
, EventArgs e
){if (listView1
.SelectedItems
.Count
== 0)return;else{ListViewItem item
= listView1
.SelectedItems
[0];textBox_name
.Text
= item
.SubItems
[0].Text
;textBox_class
.Text
= item
.SubItems
[1].Text
;textBox_Tel
.Text
= item
.SubItems
[2].Text
;}}private void button_update_Click_1(object sender
, EventArgs e
){ischange
= true;if (listView1
.SelectedItems
.Count
>= 1){ListViewItem item
= listView1
.SelectedItems
[listView1
.SelectedItems
.Count
- 1];if (!textBox_name
.Text
.Contains("|") && !textBox_class
.Text
.Contains("|") && !textBox_Tel
.Text
.Contains("|")){if (textBox_name
.Text
!= ""){item
.SubItems
[0].Text
= textBox_name
.Text
;item
.SubItems
[1].Text
= textBox_class
.Text
;item
.SubItems
[2].Text
= textBox_Tel
.Text
;MessageBox
.Show("修改成功");textBox_name
.Clear();textBox_class
.Clear();textBox_Tel
.Clear();MessageBox
.Show("請選中一行需要修改的數(shù)據(jù)");}}else MessageBox
.Show("修改失敗,字符“|不是系統(tǒng)定義的特殊字符,請重新輸入");}}private void Form_main_FormClosing(object sender
, FormClosingEventArgs e
){if (ischange
){DialogResult result
= MessageBox
.Show("是否應(yīng)用到通訊錄", "提示信息",MessageBoxButtons
.YesNoCancel
, MessageBoxIcon
.Information
);if (result
== DialogResult
.Cancel
){e
.Cancel
= true;}else if (result
== DialogResult
.No
){e
.Cancel
= false;}else if (result
== DialogResult
.Yes
){save();e
.Cancel
= false;}}}private void toolStripButton_update_Click(object sender
, EventArgs e
){String
[] a
= File
.ReadAllLines(@"通訊錄.txt", Encoding
.Default
);for (int i
= a
.Length
-1; i
< a
.Length
; i
++){string[] ax
= a
[i
].Split(new String[] { "|" }, StringSplitOptions
.None
);addlistviewitem(ax
);}}}}
Form_add.cs
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
;
using System
.IO
;namespace exam
{public partial
class Form_add : Form
{public Form_add(){InitializeComponent();}private void Form_add_Load(object sender
, EventArgs e
){}private void btn_add_Click(object sender
, EventArgs e
){String s1
= textBox_name
.Text
;String s2
= textBox_class
.Text
;String s3
= textBox_Tel
.Text
;if (!s1
.Contains("|") && !s2
.Contains("|") && !s3
.Contains("|")){if (s1
!= ""){String s1a
= s1
.Trim();String s2a
= s2
.Trim();String s3a
= s3
.Trim();s1
= s1a
+ "|";s2
= s2a
+ "|";s3
= s3a
+ Environment
.NewLine
; ;String path
= @
"通訊錄.txt"; File
.AppendAllText(path
, s1
+ s2
+ s3
, Encoding
.Default
);MessageBox
.Show("添加成功");textBox_name
.Clear();textBox_class
.Clear();textBox_Tel
.Clear();}else MessageBox
.Show("用戶輸入姓名不能為空");}elseMessageBox
.Show("添加失敗,字符“*&$為無效值");}}
}
Form_search.cs
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
;
using System
.IO
;
using System
.Collections
;namespace exam
{public partial class Form_search : Form{public Form_search(){InitializeComponent();}private void AddlistViewItem(String
[] a
){ListViewItem item
= new ListViewItem(a
);listView1
.Items
.Add(item
);}private void LoadList(){String
[] a
= File
.ReadAllLines(@"通訊錄.txt", Encoding
.Default
);for (int i
= 0; i
< a
.Length
; i
++){string[] ax
= a
[i
].Split(new String[] { "|" }, StringSplitOptions
.None
);AddlistViewItem(ax
);}}private void search(string key
){string[] strArr
= File
.ReadAllLines(@"通訊錄.txt", Encoding
.Default
);ArrayList findText
= new ArrayList();foreach (string str
in strArr
){if (str
.IndexOf(key
) != -1){findText
.Add(str
);}}listView1
.Items
.Clear();foreach (string str
in findText
){string[] ax
= str
.Split(new String[] { "|" }, StringSplitOptions
.None
);AddlistViewItem(ax
);}}private void Form_search_Load(object sender
, EventArgs e
){LoadList();}private void textBox1_TextChanged_1(object sender
, EventArgs e
){search(textBox1
.Text
);}}
}
源碼下載
https://download.csdn.net/download/qq_42253057/18810949
總結(jié)
以上是生活随笔為你收集整理的【C#】制作通讯录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。