C#中教你一步步实现一个电话本窗体程序
场景
使用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#中教你一步步实现一个电话本窗体程序相关推荐
- python程序实例电话本-零基础案例,别再错过了,动手Python做一个电话本小程序!...
最近比较忙,只能抽空的写写文章,其实我也是一个上班族,python完全是个人想学然后希望以后对工作有所帮助,2019年了,祝大家新年快乐. image image 我们就必须要懂得写脚本来提高下效率了 ...
- 自己写的一个电话本小软件(2004年)
这是我写的一个电话本小软件 图片预览 软件说明: ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ ▓ 欢迎使用TelBook ...
- python程序实例电话本-利用Python电话本小程序!这波操作你给几分?
原标题:利用Python电话本小程序!这波操作你给几分? 最近比较忙,只能抽空的写写文章,其实我也是一个上班族,python完全是个人想学然后希望以后对工作有所帮助,2019年了,祝大家新年快乐. 2 ...
- python检索用人名查电话_利用Python电话本小程序!这波操作你给几分?
原标题:利用Python电话本小程序!这波操作你给几分? 最近比较忙,只能抽空的写写文章,其实我也是一个上班族,python完全是个人想学然后希望以后对工作有所帮助,2019年了,祝大家新年快乐. 2 ...
- 用结构体实现一个电话本
结构体是c语言又一个存储数据的类型,那么用结构体怎么实现一个简单的可以存储1000个人信息的电话本呢? 一.首先需要定义一个结构体,包含一个人的信息(比如姓名,性别,年龄,电话,住址等等).我 ...
- java模拟而一个电话本操作
哈哈,大家平时都在使用电话本,下面使用java来模拟而一个简单的电话本吧... 首先给出联系人的抽象类 package net.itaem.po;/*** * 电话人的信息* */ public cl ...
- java制作电话本,java模拟而一个电话本操作
哈哈.大家平时都在使用电话本.以下使用java来模拟而一个简单的电话本吧... 首先给出联系人的抽象类 package net.itaem.po; /** * * 电话人的信息 * */ public ...
- Python:PyQt5设计一个文本编辑器窗体程序(附UI窗体和图片素材下载)
hello,大家好,我是wangzirui32,今天我们来学习如何用PyQt5设计一个文本编辑器窗体,开始学习吧! 文章目录 1. UI窗体设计 2. 编写代码 2.1 pyuic生成代码 2.2 修 ...
- C#——设计一个简单的窗体程序,在文本框中输入两个点的坐标值,单击“确定”按钮时显示两点之间的距离。
要求定义一个Point类,包括 (1)两个私有字段表示两个坐标值. (2)一个构造函数通过传入的参数对坐标值初始化 (3)两个只读属性对坐标值的读取 (4)一个方法包含一个Point类对象作为参数对象 ...
最新文章
- 全景视频的跟踪与合成方法
- silverlight 安全性错误
- Performance Prism
- 部署时服务端Excel的COM设置
- 降Mail十八章(下)
- 今日c++练手之寻找n个连续的合数
- Flex 3 和PHP连接mysql数据库
- js实现svg图形转存为图片下载[转]
- 猜数字游戏 : 共给玩家10次机会,若第一次就猜对了,显示‘您真是个天才’,若10也没猜对,显示“您太笨了,下次努力吧!”, 若是第2-10次猜对了,只简单的显示:“恭喜您猜对了”。
- idea 优化_JVM优化:如何利用VisualVM对高并发项目进行性能分析
- 电子科学与技术毕业论文题目【452个】
- 2022年第一个诺奖揭晓!获奖者的父亲,诺贝尔生理学或医学奖得主
- AlphaSSL证书和GlobalSign SSL证书介绍
- 以DA方式通过opcdaauto.dll访问opc服务器异步操作异常0x80040200问题
- 懒癌必备-dplyr和data.table让你的数据分析事半功倍
- 广东侨乡台山人“小年夜”喜用传统沙琪玛祭灶
- IntelliJ IDEA详细配置图解,挖掘更多的功能!
- 实验四:无向图最短路径搜索
- robomongo超时
- 29、数据结构笔记之二十九数组之硬币抛掷模拟
热门文章
- Docker环境运行Vue项目
- dell服务器从硬盘引导,就是折腾 篇三:戴尔H710 mini(D1版本)阵列卡刷直通模式 附硬盘引导和还原IR模式办法...
- Springboot使用Log4j2的配置详解
- rocketmq发送顺序消息(四)
- 八皇后时间复杂度_回溯算法 | 追忆那些年曾难倒我们的八皇后问题
- dhcp request汉字乱码分析
- 微型计算机1tb等于,计算机应用基础第一套试卷100分
- python 异步io_python之同步IO和异步IO
- linux ftp做yum源,在RedHat5下架设yum源服务器(FTP)
- java发邮件_使用MATLAB自动发邮件