栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

【C#】制作通讯录

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C#】制作通讯录

C#制作通讯录

功能说明 <1>四个功能:添加、删除、修改、查找 <2>添加功能:单击添加功能,从弹窗中添加数据,该功能主要是对文件进行操作,因此添加完listview不会显示新添加的数据,关闭弹窗,单击主界面更新按钮,列表就会显示出刚刚添加的条目(一次添加一条数据)

<3>删除功能,直接对文件进行操作实现删除功能,该功能实时显示,单击数据项并删除后,listview内和文件内数据同时删除

<4>修改功能:选中一行记录,单击修改功能, 主窗口跳出修改的组件,在组件内修改后单击更新按钮,listview内数据更新,该操作实现的是对listview的操作,关闭页面后,提示是否应用到通讯录,单击是,对应TXT文件内数据会更新,单击否,则更改不会保存到TXT文件


<5>查找功能:单击查找按钮,跳出查找的弹窗,输入关键字进行实时检索,系统匹配数据项,只要包含输入的关键字的数据项都会被检索出来显示在列表内

缺陷总结
<1>没有严格控制输入格式,如手机号码尾数不等于11||6时提示输入有误;
<2>子窗口添加数据项没有在父窗口实时显示,借助了更新按钮;
<3>查找listview内数据项和加载txt文件内数据项到listview内基本是遍历的思想,大型工程不合适

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);//调用方法,添加每一行到表格中
            }
        }

        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("请选中一行需要修改的数据");
                    }
                }
                else MessageBox.Show("修改失败,字符“|不是系统定义的特殊字符,请重新输入");
            }
        }
        
        

        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("请选中一行需要修改的数据");
                    }
                }
                else MessageBox.Show("修改失败,字符“|不是系统定义的特殊字符,请重新输入");
            }
        }

        private void Form_main_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (ischange)
            {
                DialogResult result = MessageBox.Show("是否应用到通讯录", "提示信息",
                    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);//调用方法,添加每一行到表格中
                }
        }
    }
        

    }

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("用户输入姓名不能为空");
            }
            else
                MessageBox.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()
        {
            //读取通讯录.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);//调用方法,添加每一行到表格中
            }
        }
        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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1023265.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号