场景

使用C#窗体程序实现一个电话本应用程序。

实现

新建窗体程序,PhoneBook

然后打开工具箱,拖拽一个ListView到窗体中

拖拽完成后点击右上角三角符号,编辑选项--编辑列。

点击添加,修改每列的Name属性和显示text

添加三列,分别为姓名、类型、号码,适当调整每列的宽度。

然后将其视图切换为Details然后就能显示每列了。

拖拽完ListView后再在右边拖拽一些label、TextBox、Button等,并设置有意义的Name属性和Text显示。

右键项目--添加-类,添加联系人实体类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace PhoneBook
{class PhoneBook{public PhoneBook(string name, string phoneType, string phoneNumber){this.Name = name;this.PhoneType = phoneType;this.PhoneNumber = phoneNumber;}private string name;public string Name{get { return name; }set { name = value; }}private string phoneType;public string PhoneType{get { return phoneType; }set { phoneType = value; }}private string phoneNumber;public string PhoneNumber{get { return phoneNumber; }set { phoneNumber = value; }}}
}

联系人加载

首先声明一个全局类变量存储联系人。

 //声明一个全局 类变量 电话本键值对 key为string,value为联系人对象Dictionary<string,PhoneBook> phoneBooks;

然后在Form的加载完的方法中对ListView进行赋值

 private void MainForm_Load(object sender, EventArgs e){phoneBooks = new Dictionary<string, PhoneBook>();PhoneBook zhang = new PhoneBook("张三", "Nokia5300", "13810043231");PhoneBook li = new PhoneBook("李四", "MotoV3i", "13915441146");PhoneBook wang = new PhoneBook("王五", "SumSungD908", "13641259670");phoneBooks.Add(zhang.Name,zhang);phoneBooks.Add(li.Name,li);phoneBooks.Add(wang.Name,wang);FillList(phoneBooks);}

上面先封装三个联系人对象吗,然后以联系人的名字为key存进全局电话本对象。

 private void FillList(Dictionary<string, PhoneBook> phoneBooks){lvPhones.Items.Clear();foreach (PhoneBook phoneBook in phoneBooks.Values){ListViewItem item = new ListViewItem(phoneBook.Name);item.SubItems.AddRange(new string[] { phoneBook.PhoneType, phoneBook.PhoneNumber });lvPhones.Items.Add(item);}}

效果

实现添加效果

在添加按钮的点击事件中

 private void btnAdd_Click(object sender, EventArgs e){if (String.IsNullOrEmpty(txtName.Text) ||String.IsNullOrEmpty(txtPhoneNum.Text) ||String.IsNullOrEmpty(txtPhoneType.Text)){MessageBox.Show("电话信息不能为空");return;}PhoneBook phone = new PhoneBook(txtName.Text, txtPhoneType.Text, txtPhoneNum.Text);phoneBooks.Add(phone.Name,phone);FillList(phoneBooks);this.txtName.Text = "";this.txtPhoneNum.Text = "";this.txtPhoneType.Text = "";}

效果

实现删除效果

  private void btnDel_Click(object sender, EventArgs e){if (this.lvPhones.SelectedItems.Count == 0){MessageBox.Show("没有选择删除项。");return;}string key = this.lvPhones.SelectedItems[0].Text;phoneBooks.Remove(key);FillList(phoneBooks);this.txtName.Text = "";this.txtPhoneNum.Text = "";this.txtPhoneType.Text = "";}

效果

实现详情效果

 private void btnDetail_Click(object sender, EventArgs e){if (this.lvPhones.SelectedItems.Count == 0){MessageBox.Show("没有选择。");return;}string key = this.lvPhones.SelectedItems[0].Text;this.txtName.Text = phoneBooks[key].Name;this.txtPhoneNum.Text = phoneBooks[key].PhoneNumber;this.txtPhoneType.Text = phoneBooks[key].PhoneType;FillList(phoneBooks);}

效果

实现统计效果

  private void btnTotal_Click(object sender, EventArgs e){string count = string.Format("总共有{0}个电话!", phoneBooks.Count.ToString());MessageBox.Show(count);}

效果

实现退出效果

 private void btnExit_Click(object sender, EventArgs e){this.Dispose();}

效果

源码下载

https://download.csdn.net/download/badao_liumang_qizhi/11566183

C#中教你一步步实现一个电话本窗体程序相关推荐

  1. python程序实例电话本-零基础案例,别再错过了,动手Python做一个电话本小程序!...

    最近比较忙,只能抽空的写写文章,其实我也是一个上班族,python完全是个人想学然后希望以后对工作有所帮助,2019年了,祝大家新年快乐. image image 我们就必须要懂得写脚本来提高下效率了 ...

  2. 自己写的一个电话本小软件(2004年)

    这是我写的一个电话本小软件 图片预览 软件说明: ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆  ▓                    欢迎使用TelBook            ...

  3. python程序实例电话本-利用Python电话本小程序!这波操作你给几分?

    原标题:利用Python电话本小程序!这波操作你给几分? 最近比较忙,只能抽空的写写文章,其实我也是一个上班族,python完全是个人想学然后希望以后对工作有所帮助,2019年了,祝大家新年快乐. 2 ...

  4. python检索用人名查电话_利用Python电话本小程序!这波操作你给几分?

    原标题:利用Python电话本小程序!这波操作你给几分? 最近比较忙,只能抽空的写写文章,其实我也是一个上班族,python完全是个人想学然后希望以后对工作有所帮助,2019年了,祝大家新年快乐. 2 ...

  5. 用结构体实现一个电话本

    结构体是c语言又一个存储数据的类型,那么用结构体怎么实现一个简单的可以存储1000个人信息的电话本呢?     一.首先需要定义一个结构体,包含一个人的信息(比如姓名,性别,年龄,电话,住址等等).我 ...

  6. java模拟而一个电话本操作

    哈哈,大家平时都在使用电话本,下面使用java来模拟而一个简单的电话本吧... 首先给出联系人的抽象类 package net.itaem.po;/*** * 电话人的信息* */ public cl ...

  7. java制作电话本,java模拟而一个电话本操作

    哈哈.大家平时都在使用电话本.以下使用java来模拟而一个简单的电话本吧... 首先给出联系人的抽象类 package net.itaem.po; /** * * 电话人的信息 * */ public ...

  8. Python:PyQt5设计一个文本编辑器窗体程序(附UI窗体和图片素材下载)

    hello,大家好,我是wangzirui32,今天我们来学习如何用PyQt5设计一个文本编辑器窗体,开始学习吧! 文章目录 1. UI窗体设计 2. 编写代码 2.1 pyuic生成代码 2.2 修 ...

  9. C#——设计一个简单的窗体程序,在文本框中输入两个点的坐标值,单击“确定”按钮时显示两点之间的距离。

    要求定义一个Point类,包括 (1)两个私有字段表示两个坐标值. (2)一个构造函数通过传入的参数对坐标值初始化 (3)两个只读属性对坐标值的读取 (4)一个方法包含一个Point类对象作为参数对象 ...

最新文章

  1. 全景视频的跟踪与合成方法
  2. silverlight 安全性错误
  3. Performance Prism
  4. 部署时服务端Excel的COM设置
  5. 降Mail十八章(下)
  6. 今日c++练手之寻找n个连续的合数
  7. Flex 3 和PHP连接mysql数据库
  8. js实现svg图形转存为图片下载[转]
  9. 猜数字游戏 : 共给玩家10次机会,若第一次就猜对了,显示‘您真是个天才’,若10也没猜对,显示“您太笨了,下次努力吧!”, 若是第2-10次猜对了,只简单的显示:“恭喜您猜对了”。
  10. idea 优化_JVM优化:如何利用VisualVM对高并发项目进行性能分析
  11. 电子科学与技术毕业论文题目【452个】
  12. 2022年第一个诺奖揭晓!获奖者的父亲,诺贝尔生理学或医学奖得主
  13. AlphaSSL证书和GlobalSign SSL证书介绍
  14. 以DA方式通过opcdaauto.dll访问opc服务器异步操作异常0x80040200问题
  15. 懒癌必备-dplyr和data.table让你的数据分析事半功倍
  16. 广东侨乡台山人“小年夜”喜用传统沙琪玛祭灶
  17. IntelliJ IDEA详细配置图解,挖掘更多的功能!
  18. 实验四:无向图最短路径搜索
  19. robomongo超时
  20. 29、数据结构笔记之二十九数组之硬币抛掷模拟

热门文章

  1. Docker环境运行Vue项目
  2. dell服务器从硬盘引导,就是折腾 篇三:戴尔H710 mini(D1版本)阵列卡刷直通模式 附硬盘引导和还原IR模式办法...
  3. Springboot使用Log4j2的配置详解
  4. rocketmq发送顺序消息(四)
  5. 八皇后时间复杂度_回溯算法 | 追忆那些年曾难倒我们的八皇后问题
  6. dhcp request汉字乱码分析
  7. 微型计算机1tb等于,计算机应用基础第一套试卷100分
  8. python 异步io_python之同步IO和异步IO
  9. linux ftp做yum源,在RedHat5下架设yum源服务器(FTP)
  10. java发邮件_使用MATLAB自动发邮件