日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

【C#】制作通讯录

發(fā)布時間:2023/12/14 C# 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【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){//讀取通訊錄.txt中的每一行保存到a[]中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);//調(diào)用方法,添加每一行到表格中}}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 button_save_Click(object sender, EventArgs e){ischange = true;save();}*/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){//讀取通訊錄.txt中的每一行保存到a[]中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);//調(diào)用方法,添加每一行到表格中}}}/* private void toolStripButton_update_Click(object sender, EventArgs e){//listView1.Items.Clear();//每次點擊事件后將ListView中的數(shù)據(jù)清空,重新顯示//讀取通訊錄.txt中的每一行保存到a[]中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);//調(diào)用方法,添加每一行到表格中}}*/}

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;//這里將字符“|”作為分隔符號,,如果用戶的輸入包括了這個字符,系統(tǒng)會提示輸入//不合法并跳過添加,讓用戶修改自己的輸入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 searchbutton_Click(object sender, EventArgs e){//ListViewItem foundItem=listView1.FindItemWithText(textBox1.Text,true,0,true);}*/private void AddlistViewItem(String[] a)//向列表中添加項的方法{ListViewItem item = new ListViewItem(a);listView1.Items.Add(item);}private void LoadList(){//讀取通訊錄.txt中的每一行保存到a[]中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);//調(diào)用方法,添加每一行到表格中}}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)容還不錯,歡迎將生活随笔推薦給好友。