第8章 Windows桌面程序开发实例
windows程序设计08
因为TranslateMessage函数从WM_KEYDOWN和WM_SYSKEYDOWN 消息产生了字符消息,所以字符消息是夹在按键消息之间传递给窗口消息处 理程序的。例如,如果Caps Lock未打开,而使用者按下再释放A键,则窗 口消息处理程序将接收到如下表所示的三个消息:
如果按下Shift键,再按下A键,然后释放A键,再释放Shift键,就会输 入大写的A,而窗口消息处理程序会接收到五个消息,如下表所示:
VK_LEFT
VK_UP
25
26
LEFT ARROW key
UP ARROW key RIGHT ARROW key
VK_RIGHT 27
VK_DOWN 28
DOWN ARROW key
(2)lParam信息
在按键消息WM_KEYDOWN、WM_KEYUP中,wParam消息参数含 有上面所讨论的虚拟键码,而lParam消息参数则含有对了解按键非常有用 的其它信息。lParam的32位分为6个字段,如图所示。
二、鼠标输入的响应
当Windows使用者移动鼠标时,Windows在显示器上移动一个称为「鼠标光标」的 小位图。鼠标光标有一个指向显示器上精确位置的单图素「热点」。当提到鼠标光标 在屏幕上的位置时,指的是热点的位置。 Windows支持几种预先定义的鼠标光标,程 序可以使用这些光标。 IDC_ARROW的斜箭头(在WINUSER.H中定义)。热点在箭头的顶端。 IDC_CROSS光标(在本章后面的BLOKOUT程序中有用到)的热点在十字交叉线 的中心。 IDC_WAIT光标是一个沙漏,通常用于指示程序正在执行。 程序员也可以设计自己的光标。 wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; 下面是一些描述鼠标按键动作的术语: Clicking按下并放开一个鼠标按键。
Windows服务开发实例
C#Windows服务程序开发实例介绍C#Windows服务程序开发实例程序的目的和用途:很多开机启动程序仅仅加在启动项里面,只有登陆后才真正启动。
windows服务在开机未进行用户登录前就启动了。
正是利用这一点,解决一些服务器自动重启后特定软件也自动启动的问题。
C#Windows服务程序开发1.新建一个服务项目 visual C#----windows----windows服务;C#Windows服务程序开发2.添加一个dataset(.xsd),用于存储启动目标的路径,日志路径等。
在dataset可视化编辑中,添加一个datatable,包含两列 StartAppPath 和LogFilePath。
分别用于存储目标的路径、日志路径。
我认为利用dataset.xsd存储配置参数的优势在于可以忽略xml解析的具体过程直接使用xml文件。
在dataset中提供了ReadXml方法用于读取xml文件并将其转换成内存中的一张datatable表,数据很容易取出来!同样,WriteXml方法用于存储为xml格式的文件,也仅仅需要一句话而已。
C#Windows服务程序开发3.program.cs文件作为程序入口,代码如下:ing ;ing System.ServiceProcess;ing System.Text;space WindowsServices_AutoStart5.{6.static class Program7.{8./// ﹤summary﹥9./// 应用程序的主入口点。
10./// ﹤/summary﹥11.static void Main()12.{13.ServiceBase[] ServicesToRun;14.// 同一进程中可以运行多个用户服务。
若要将15.// 另一个服务添加到此进程中,请更改下行以16.// 创建另一个服务对象。
例如,17.//18.// ServicesToRun = new ServiceBase[] {19.new Service1(), new MySecondUserService()};20.//21.ServicesToRun = new ServiceBase[] {22.new WindowsServices_AutoStart() };23.ServiceBase.Run(ServicesToRun);24.}25.}26.}ing ;ing System.ServiceProcess;ing System.Text;space WindowsServices_AutoStart31.{32.static class Program33.{34./// ﹤summary﹥35./// 应用程序的主入口点。
Viscual C程序设计第八章 windows窗体编程PPT课件
日期选择框(DatetimePicker )
常用事件及方法
实例8.6
当选择的日期改变时,label 控件分别显示,年,月,日
代码实现
进入ValueChanged 事件的代码编辑,写入以下代码:
b_year.Text = this.dateTimePicker1.Value.Year.ToString(); //把当前日期的年份取出来 b_month.Text = this.dateTimePicker1.Value.Month.ToString(); //把当前日期的月份取出来 b_day.Text = this.dateTimePicker1.Value.Day.ToString(); //把当前日期的天取出来
双击窗体,进入窗体的加载事件, 写入如下代码: comboB_1.Items.Clear(); //清空下拉列表框 for (int i = 1; i < 7; i++) { comboB_1.Items.Add("第 " + i.ToString() + " 个"); //向下拉列表框中添加项 }
单选按钮RadioButton
实例8.3
如图布置一个窗体,并按照表格设置属性值:
实现代码
双击确定按钮进入代码页,写入以下代码: Checked属性和复选框的 属性一样,都是用来判断 是否被选中!
string mess = ""; if (radioBtn_1.Checked == true) mess += " 单选1"; if (radioBtn_2.Checked == true) mess += " 单选2 "; if (radioBtn_3.Checked == true) mess += " 单选3 "; MessageBox.Show("选中的单选框有" + mess);
实验8 Windows程序开发
实验8 Windows 程序开发(4)实训目的实训目的::1、 熟练掌握熟练掌握基本控件基本控件Label Label、、TextBox 和Button 的应用2、 掌握TextBox 和Button 的事件事件处理处理处理3、 熟练掌握string 的处理方法的处理方法4、 初步初步理解理解理解信息信息信息框框的显示显示方法方法方法实训内容实训内容::•《食堂食堂饭卡饭卡饭卡管理管理管理系统系统系统》》添加添加新新的饭卡饭卡,,要求要求录入录入录入信息信息信息时时学号只能只能输入输入输入数字数字数字,,姓名姓名不能不能不能输入输入输入数字数字数字,,首次首次充值充值充值金额金额金额只能只能是50到500之间之间的的整数整数,,否则否则给出给出给出错误错误错误提示提示提示。
饭卡饭卡信息信息信息保保存在字符串字符串数组数组数组中中,已有饭卡饭卡的的学生学生不能不能不能新新建饭卡饭卡。
实训步骤实训步骤::1、 创建创建《《添加添加新新饭卡饭卡》》窗体2、 定义定义变量变量变量,,用于用于保存保存保存新新添加添加的的饭卡饭卡信息信息信息。
3、 添加T extBox 控件txt txtS S No 的键盘键盘键入键入键入事件事件事件限制限制限制非非数字数字字符字符的输入输入。
4、 添加T extBox 控件txt txtName Name 的键盘键盘键入键入键入事件事件事件限制限制限制数字数字数字字符字符的输入输入。
5、 添加T extBox 控件txt txtMoney Money 的键盘键盘键入键入键入事件事件事件限制限制限制非非数字数字字字符的输入输入。
6、 添加添加按钮事件按钮事件按钮事件实现实现实现::点击点击““添加添加””按钮按钮,,检测检测输入输入输入的的有效性,如有效有效则则保存保存饭卡饭卡饭卡信息信息信息到到字符串字符串数组数组数组。
7、 添加添加按钮按钮按钮事件实现事件实现事件实现::点击点击““取消取消””按钮按钮,,退出退出程序程序程序。
第8章 Windows应用程序开发
Windows应用程序使用窗体作为程序和用户的交互界面, 应用程序使用窗体作为程序和用户的交互界面, 应用程序使用窗体作为程序和用户的交互界面 在窗体中提供多种控件供用户提交信息和操作。 在窗体中提供多种控件供用户提交信息和操作。
8.1 创建 创建Windows应用程序 应用程序
• 实验目的:
– 1.掌握如何添加Windows窗体和修改窗体属 性; – 2.掌握如何向窗体添加控件,排列控件; – 3.掌握Windows简单控件的使用; – 4.熟悉开发一个项目的流程;
8.3 常用 常用Windows控件 控件
8.3.3 使用按钮类 按钮类控件包括:Button,RadioButton和CheckBox控件。 1、RadioButton控件即单选按钮,提供由两个或两个以上互斥 选项组成的选项集。 2、CheckBox控件即复选框控件,通常用来设置选项,用户可 以一次选择任意数量的复选框。
【例8-1】单击“确定”按钮,可以将指定文字显示在文 】单击“确定”按钮, 本框中。 本框中。
8.3 常用 常用Windows控件 控件
8.3.1 使用 使用Label类 类 Label 类用于创建窗体上的描述性标签,显示透明底色的文字。 要更改控件的标题文本: label1.Text =”Hello World!”; 8.3.2 使用 使用TextBox类 类 TextBox类用于显示设计时输入的文本。可由用户在运行时设 置或以编程方式更改,通过 Text 属性可以得到用户在文本框控 件中输入的文本。
创建Windows应用程序 用VS2005创建 创建 应用程序
---Program.cs:项目启动文件,包含了程序的Main方法。
使用PYTHON开发WINDOWS桌面程序
使用PYTHON开发WINDOWS桌面程序使用Python开发Windows桌面程序Python是一种高级、面向对象、解释性的计算机编程语言,它具有简洁、易读、易学的特点,并且拥有丰富的第三方库和模块,因此在Windows桌面程序的开发中非常流行。
下面我们将详细介绍如何使用Python开发Windows桌面程序。
一、Python开发环境的安装安装完成后,可以通过命令行输入以下命令检查Python的安装情况:```python --version```如果看到输出的版本号,则说明Python已经成功安装。
二、Python GUI库Python提供了多种多样的GUI库,其中较为常用的有Tkinter、PyQt、wxPython等。
这些库都提供了丰富的GUI组件和功能,用户可以根据需求选择合适的库进行开发。
在本文中,我们以Tkinter为例进行介绍。
1. Tkinter介绍2. 安装Tkinter库在Python 3.x版本中,Tkinter库已经被打包进入了Python安装包中,因此不需要额外安装。
可以通过以下命令导入Tkinter库:```import tkinter```如果没有报错信息,则说明Tkinter库已经安装成功。
3.创建窗口在使用Tkinter库进行开发时,首先需要创建一个窗口对象。
窗口对象可以通过Tkinter库提供的Tk(函数创建。
示例代码如下所示:```import tkinter as tk#创建窗口对象window = #设置窗口标题window.title("Hello World")#设置窗口大小window.geometry("500x300")#启动窗口的消息循环window.mainloop```以上代码创建了一个标题为"Hello World"的窗口,大小为500x300像素,并且通过window.mainloop(启动了窗口的消息循环。
使用C进行Windows桌面应用程序开发
使用C进行Windows桌面应用程序开发Windows桌面应用程序是指能够在Windows操作系统上运行的软件应用程序,通常具有图形用户界面(GUI)且能够提供丰富的功能和交互性。
开发Windows桌面应用程序可以使用多种编程语言,其中C语言是一种常用且强大的选择。
本文将介绍使用C语言进行Windows桌面应用程序开发的基本步骤和相关注意事项。
一、Windows桌面应用程序开发环境的准备在进行Windows桌面应用程序开发之前,首先需要搭建相应的开发环境。
以下是搭建C语言开发环境的基本步骤:1. 安装C编译器:C语言是一种编译型语言,因此需要安装相应的C编译器。
常用的C编译器有GCC和Visual Studio等。
GCC是一款开源的免费编译器,而Visual Studio是微软官方提供的一套集成开发环境(IDE),其中包含了C编译器。
2. 配置开发环境:根据选择的C编译器进行相应的环境配置。
对于GCC,可以通过在命令行中输入gcc命令来进行编译和链接操作。
对于Visual Studio,可以在IDE中创建一个新的C项目,并在项目设置中进行相关配置。
二、Windows桌面应用程序的开发流程在搭建好开发环境后,可以开始进行Windows桌面应用程序的开发。
下面是一个基本的开发流程:1. 确定应用程序需求:在开始开发之前,首先需要明确应用程序的需求和功能。
考虑应用程序的用途、目标用户以及所需的功能和界面设计,有助于后续的开发工作。
2. 编写代码:使用C语言编写应用程序的功能代码。
在编写代码时,可以利用C语言的丰富库函数来实现各种功能,比如文件操作、网络通信、图形界面等。
同时,还可以使用相关的开发工具和框架来简化开发过程。
3. 进行编译和调试:使用C编译器对代码进行编译,并进行调试。
编译过程会将源代码转换为可执行文件,检查并修复代码中的错误和问题。
调试过程是为了定位并解决代码中的BUG(程序错误),可以通过逐步执行、设置断点和查看变量值等方式进行。
C#程序开发范例宝典目录解析
C#程序开发范例宝典目录第1章窗体与界面设计 11.1菜单应用实例 2实例001带历史信息的菜单 2实例002菜单动态合并 3实例003像开始菜单一样漂亮的菜单 4实例004任务栏托盘菜单 5实例005可以拉伸的菜单界面 5实例006菜级联菜单71.2工具栏设计7实例007带背景的工具栏7实例008浮动工具栏8实例009带下拉菜单的工具栏9实例010具有提示功能的工具栏91.3状态栏设计10实例011在状态栏中显示检查框10实例012带进度条的状态栏11实例013状态栏中加入图标121.4导航菜单界面12实例014OutLook界面12实例015带导航菜单的主界面14实例016图形化的导航界面151.5特色程序界面17实例017类QQ的程序界面17实例018类似Windows Xp的程序界面18 实例019以图形按钮显示的界面20实例020以树形显示的程序界面21实例021动态按钮的窗体界面221.6特殊形状的窗体24实例022非矩形窗体24实例023建立字体形状窗体25实例024控件随窗体自动调整26实例025带分隔栏的窗体27实例026随机更换主界面背景271.7多媒体光盘28实例027自动启动的多媒体光盘程序28 实例028为触摸屏程序添加虚拟键盘29 1.8窗体效果30实例029半透明渐显窗体31实例030窗口颜色的渐变321.9窗体动画33实例031窗体中的滚动字幕33实例032动画显示窗体34实例033制作闪烁的窗体35实例034直接在窗体上绘图37实例035动画形式的程序界面381.10标题栏窗体39实例036使窗体标题栏文字右对齐39实例037没有标题栏但可以改变大小的窗口391.11设置窗体位置40实例038设置窗体在屏幕中的位置40实例039始终在最上面的窗体411.12设置窗体大小42实例040限制窗体大小42实例041获取桌面大小42实例042在窗口间移动按钮43实例043如何实现Office助手441.13窗体控制技术45实例044在关闭窗口前加入确认对话框45实例045使用任意组件拖动窗体46实例046修改提示字体及颜色471.14其他技术48实例047如何为MDI类型窗体设置背景图片48实例048向提示框中添加图标49第2章控件应用512.1TextBox控件应用52实例049只允许输入数字的TextBox控件52实例050限制用户名称长度及设置密码文本54实例051自动删除非法字符55实例052为TextBox控件添加列表选择框572.2Button控件应用58实例053在Button按钮中显示图标582.3ComboBox控件应用59实例054将数据表中的字段添加到ComboBox控件59 实例055带查询功能的ComboBox控件612.4RichTextBox控件应用63实例056利用RichTextBox控件实现文档管理功能63 实例057利用RichTextBox控件实现文字定位与标识65 实例058用RichTextBox控件显示图文数据672.5ListBox控件应用68实例059在ListBox控件间交换数据68实例060将数据库数据添加到组合框中70实例061借助绑定控件实现数据选择录入71实例062ListBox拒绝添加重复信息722.6选择类控件应用73实例063利用选择控件实现权限设置74实例064利用选择控件实现复杂查询762.7ListView控件应用78实例065ListView列表拒绝添加重复信息78实例066将数据库数据添加到ListView控件80实例067用ListView控件制作导航界面81实例068在ListView控件中对数据排序或统计83实例069在ListView控件中绘制底纹84实例070在列表视图中拖动视图项85实例071用ListView控件选取整行数据88实例072用ListView控件开发登录界面892.8TreeView控件应用91实例073将数据库数据显示到树视图中91实例074用TreeView控件制作导航界面93实例075用TreeView控件遍历磁盘目录94实例076TreeView控件在数据库中的应用96实例077带复选框的树状菜单982.9其他控件典型应用100实例078TrackBar的简单应用100实例079SplitContainer的应用102实例080MaskedTextBox控件的简单应用103实例081制作日历计划任务105实例082ImageAnimator类显示动画图片108实例083QQ头像列表1102.10控件技术112实例084程序运行时智能增减控件112实例085控制焦点移动114实例086动态创建控件115实例087在Button按钮上绘图1162.11焦点变换与输入控制117实例088按回车键焦点在控件中移动的录入窗口117实例089程序运行时拖动控件119实例090控件得到焦点时变色120实例091控件的输入限制1212.12特殊控件122实例092为控件制作立体效果122实例093获取控件名称和内容124第3章组件应用1273.1BackgroundWorker组件128实例094BackgroundWorker组件执行异步操作1283.2ErrorProvider组件130实例095使用ErrorProvider组件验证文本框输入130实例096利用ErrorProvider组件查看数据集中的错误132 3.3EventLog组件134实例097使用EventLog组件读写Windows系统事件日志134 实例098使用EventLog组件保存Windows系统日志136实例099使用EventLog组件向本机现有日志中添加条目1383.4FileSystemWatcher组件140实例100使用FileSystemWatcher组件监视系统日志文件是否被更改140 3.5HelpProvider组件142实例101使用HelpProvider组件调用帮助文件1423.6Process组件143实例102使用Process组件访问本地进程1433.7Timer组件145实例103使用Timer组件制作计时器145实例104使用Timer组件显示当前系统时间150实例105使用Timer组件制作左右飘动的窗体151实例106使用Timer组件实现奥运倒计时1523.8ServiceController组件154实例107使用ServiceController组件控制计算机的服务1543.9ImageList组件156实例108使用ImageList组件制作动画图片1563.10DirectoryEntry组件157实例109使用DirectoryEntry组件建立虚拟目录158第4章图形技术1614.1绘制图形162实例110基本图形绘制162实例111在图片中写入文字163实例112局部图片的复制165实例113波形图的绘制1664.2图形转换168实例114BMP转换成JPG格式168实例115JPG转换成BMP格式170实例116位图转化为WMF171实例117Ico文件转化为位图172实例118图片批量转换工具1734.3图像预览175实例119局部图像放大175实例120浏览大图片177实例121剪切图片178实例122图像旋转181实例123鼠标拖拽图像1824.4图形缩放与变换183实例124如何放大和缩小图像183实例125如何旋转JPG图像184实例126如何实现图形翻转1854.5图像效果186实例127百叶窗效果显示图像186实例128推拉效果显示图像187实例129水平交错效果显示图像188实例130垂直交错效果显示图像190实例131图像纹理效果191实例132图像浮雕效果193实例133积木效果194实例134马赛克效果显示图像1954.6图像字体197实例135旋转的文字197实例136当前系统字体列表198实例137空心文字199实例138如何在图片上平滑移动文字201 4.7图像动画202实例139动画背景窗体202实例140随鼠标移动的图像203实例141十字光标定位204实例142抓取鼠标形状2064.8图像识别207实例143查看图片的像素207实例144获取指定点的RGB值2074.9图像工具208实例145获取图片类型208实例146简单画图程序209实例147看图工具213实例148文字保存为图片2154.10图像应用215实例149随机更换壁纸程序216实例150屏幕保护217实例151模拟石英钟219实例152生肖速查221第5章多媒体技术2255.1CD、VCD播放226实例153播放指定的avi-mid-wav文件226 实例154获取多媒体详细信息列表227 5.2MP3、W A V播放228实例155带记忆功能的MP3播放器228实例156自动播放的MP3播放器231实例157学校体操定时音乐播放2335.3动画播放234实例158播放Flash动画234实例159制作A VI播放器236实例160播放Gif动画237实例161利用Image制作小动画2395.4媒体控制240实例162检测是否安装声卡240实例163打开和关闭CDROM241实例164控制PC喇叭发声2425.5多媒体应用243实例165开机祝福程序243实例166制作家庭影集245实例167产品电子报价246实例168产品滚动展示程序248实例169将图片资源添加到EXE里249 5.6屏幕保护相关程序250实例170电子相册屏幕保护程序250实例171歌曲播放屏幕保护程序251第6章文件系统2536.1创建和删除文件254实例172创建和删除文件夹254实例173建立临时文件255实例174根据日期动态建立文件256实例175清空回收站2576.2查找文件258实例176搜索文件259实例177检查文件是否存在260实例178提取指定文件夹目录2616.3修改文件261实例179更改文件名称262实例180修改文件属性262实例181修改文件及目录的名字2646.4文件目录265实例182获得临时文件目录265实例183获取应用程序所在目录266实例184得到系统当前目录266实例185在程序中改变当前路径2676.5复制文件268实例186移动正在使用的文件268实例187批量复制文件2696.6指定类型的文件操作270实例188文本文件的操作270实例189简单的文件加密解密2716.7其他273实例190获取窗口文本273实例191判断文件是否正在被使用274实例192在程序中调用.HLP文件275实例193C#中实现文件拖放276实例194文件比较276第7章操作系统与Windows相关程序279 7.1启动相关280实例195进入Windows前发出警告280实例196实现注销、关闭和重启计算机281 7.2获得磁盘属性284实例197获得硬盘序列号284实例198获取映射驱动器路径286实例199判断驱动器类型2877.3磁盘相关设置288实例200取消磁盘共享288实例201检查驱动器容量289实例202检测磁盘是否准备好290实例203图表显示磁盘容量291实例204格式化磁盘2937.4系统控制294实例205怎样隐藏鼠标294实例206允许和禁止用户关机295实例207锁定计算机2967.5系统设置297实例208设置系统输入法297实例209设置桌面颜色298实例210鼠标交换左右键2997.6系统监控299实例211检测系统启动模式300实例212内存使用状态监控301实例213监视剪贴板内容3027.7系统软件信息303实例214获取用户名303实例215获取系统目录305实例216注册系统热键306实例217获取和修改BIOS计算机名307 7.8鼠标操作308实例218动画鼠标309实例219限制鼠标活动区域310实例220获取鼠标在任意点的位置311实例221判断键盘按下的键值3117.9程序控制312实例222打开控制面板中的程序313实例223添加程序托盘314实例224不出现在任务栏上的程序314实例225怎样调用外部的Exe文件315实例226关闭外部已开启的程序3167.10程序运行317实例227防止程序多次运行317实例228开机后程序自动运行319实例229获取任务栏尺寸大小320实例230改变系统提示信息321实例231获取系统环境变量322实例232启动屏幕保护3237.11系统隐藏324实例233隐藏、显示任务栏324实例234隐藏、显示开始按钮325实例235查看当前系统版本326实例236使桌面图标文字透明328实例237检索系统中正在运行的任务329实例238列出系统中的打印机3307.12其他332实例239两种信息发送方式332实例240功能快捷键336第8章注册表3398.1操作注册表340实例241怎样存取注册表信息340实例242注册表保存注册信息341实例243设置“显示属性”窗体342实例244列出注册表指定项下全部键值3438.2系统设置344实例245隐藏、显示桌面图标345实例246隐藏驱动器345实例247禁用运行注册表3478.3IE浏览器设置348实例248修改IE浏览器标题栏内容348实例249隐藏IE浏览器的右键关联菜单349实例250设置IE浏览器的默认主页350实例251禁止修改IE浏览器主页3518.4应用软件设置352实例252设置Word 2000文档及图片的保存路径352实例253限制软件使用次数353第9章数据库技术3559.1连接Access数据库356实例254连接Access数据库356实例255连接加密的Access数据库357实例256自动识别Access 2000数据库路径358实例257连接网络上共享的Access 2000数据库3609.2连接SQL Server数据库361实例258使用ODBC DSN连接SQL Server数据库361实例259使用ODBC非DSN连接SQL Server数据库364 实例260使用OLE DB连接SQL Server数据库365实例261建立SQL Server数据库连接3669.3连接其他数据库367实例262连接Excel367实例263连接Oracle数据库3689.4数据库结构的读取与修改369实例264读取SQL Server数据库结构369实例265修改SQL Server数据库结构3729.5数据录入374实例266利用数据绑定控件录入数据374实例267使用对象录入数据376实例268利用SQL语句录入数据379实例269利用存储过程录入数据3809.6图片存取技术383实例270使用存取文件名的方法存取图片383实例271使用对象向SQL Server数据库存入图片384 9.7数据修改387实例272利用数据绑定控件修改数据387实例273利用数据对象修改数据390实例274利用SQL语句修改数据391实例275利用存储过程修改数据3939.8数据保存前判断395实例276判断输入数据是否符合要求395实例277通过存储过程实现自动编号3989.9数据删除401实例278删除表格中指定的记录401实例279利用SQL语句删除数据4029.10数据记录403实例280分页显示信息403实例281移动记录4049.11数据维护406实例282在C#中分离SQL Server数据库406实例283在C#中附加SQL Server数据库407实例284在C#中附加单文件SQL Server数据库4099.12数据备份恢复410实例285备份SQL Server数据库410实例286还原SQL Server数据库4139.13管理系统开发相关415实例287开启SQL Server数据库415实例288断开SQL Server数据库与其他应用程序的连接417实例289带图像列表的系统登录程序419实例290利用SQL语句执行外围命令420实例291系统初始化421第10章SQL查询相关技术42510.1SELECT子句426实例292查询特定列数据426实例293使用列别名428实例294在列上加入计算430实例295使用函数设置条件43110.2查询常量432实例296查询数字433实例297查询字符串434实例298查询日期数据436实例299查询逻辑型数据437实例300查询空数据43810.3查询变量440实例301利用变量查询字符串数据440实例302利用变量查询数值型数据441实例303利用变量查询日期型数据44210.4模式查询444实例304利用“_”通配符进行查询444实例305利用“%”通配符进行查询445实例306利用“[]”通配符进行查询446实例307利用“[^]”通配符进行查询448实例308复杂的模式查询44910.5TOP和PERCENT限制查询结果450实例309查询前10名数据450实例310取出数据统计结果的前10名数据451实例311查询销售量占前50%的图书信息453实例312查询库存数量占后20%的图书信息454 10.6周期、日期查询455实例313查询指定日期的数据455实例314查询指定时间段的数据457实例315按月查询数据45810.7比较、逻辑、重复查询460实例316查询数据大于指定条件的数据460实例317NOT与谓词进行组合条件的查询461实例318查询时不显示重复记录463实例319列出数据中的重复记录和记录条数465 10.8在查询中使用OR和AND运算符466实例320利用OR运算符进行查询466实例321利用AND运算符进行查询467实例322同时利用OR、AND运算符进行查询469 10.9排序、分组统计471实例323数据分组统计(单列)471实例324在分组查询中使用ALL关键字473实例325在分组查询中使用CUBE运算符475实例326在分组查询中使用ROLLUP477实例327对数据进行降序查询479实例328对数据进行多条件排序480实例329对统计结果进行排序482实例330按仓库分组统计图书库存(多列)483 实例331多表分组统计484实例332使用COMPUTE485实例333使用COMPUTE BY48710.10聚合函数488实例334利用聚合函数SUM对销售额进行汇总488实例335利用聚合函数A VG求某班学生的平均年龄490实例336利用聚合函数MIN求销售额、利润最少的商品492实例337利用聚合函数MAX求月销售额完成最多的员工493实例338利用聚合函数COUNT求日销售额大于某值的商品数495实例339利用聚合函数First或Last求数据表中第一条或最后一条记录496 10.11多表查询(连接查询)498实例340利用FROM子句进行多表查询498实例341使用表别名499实例342合并多个结果集50110.12嵌套查询503实例343简单嵌套查询503实例344复杂嵌套查询504实例345嵌套查询在查询统计中的应用50610.13子查询508实例346用子查询做派生的表508实例347用子查询作表达式510实例348在Update语句中应用子查询51110.14联合语句Union512实例349使用联合查询512实例350多表联合查询514实例351对联合查询后的结果进行排序51510.15内联接查询517实例352简单内联接查询517实例353复杂内联接查询518实例354使用内联接选择一个表与另一个表中行相关的所有行51910.16外联接查询520实例355left outer join查询521实例356right outer join查询522实例357使用外联接进行多表联合查询52310.17利用IN进行查询525实例358用IN查询表中的记录信息525实例359使用IN引入子查询限定查询范围52610.18交叉表查询527实例360利用Trasform分析数据527实例361利用Trasform动态分析数据529实例362静态交叉表(SQLServer 2000)531实例363动态交叉表(SQLServer 2000)53310.19函数查询535实例364在查询语句中使用格式化函数536实例365在查询语句中使用字符串函数537实例366在查询中使用日期函数53810.20having语句应用540实例367利用having语句过滤分组数据540实例368having语句应用在多表查询中54110.21视图的应用543实例369在C#中应用视图543实例370获取数据库中的全部用户视图544实例371通过视图修改数据54510.22存储过程的应用546实例372C#应用存储过程546实例373应用存储过程添加数据547实例374应用存储过程修改数据549实例375应用存储过程删除数据550实例376C#应用查询存储过程551实例377获取数据库中全部的存储过程552实例378加密存储过程55310.23触发器的应用555实例379Insert触发器的应用555实例380Update触发器在系统日志中的应用556实例381触发器的嵌套使用557实例382获取数据库中的触发器559第11章报表与打印技术56111.1Windows组件打印562实例383打印窗体中的数据562实例384图形打印56411.2利用报表生成器设计报表566实例385利用报表专家设计并显示学生基本信息566实例386分组统计报表569实例387在水晶报表中添加图表57111.3水晶报表基本操作574实例388在水晶报表中使用Access数据库575实例389在水晶报表中使用SQL Server数据库576实例390订货总金额超过10万元显示“恭喜获奖”文字577 实例391薪资大于或等于1万元使用蓝色字体标记580实例392筛选薪资大于2000元的男员工582实例393按类别分组统计图书库存584实例394按成绩总分降序排序585实例395部门销售量占公司总销售量的业绩百分比586 11.4子报表的使用588实例396插入子报表588实例397编辑与重新导入子报表589实例398根据需要显示子报表59111.5调用Office进行打印593实例399利用Word打印员工报表593实例400利用Excel打印学生信息报表595第12章图表技术59712.1简单图表598实例401绘制坐标系598实例402绘制椭圆599实例403绘制矩形601实例404绘制曲线60212.2柱形图表603实例405将汇总数据利用图表分析603实例406柱形图表分析商品走势605实例407对排序数据进行分析608实例408利用控件实现柱形图分析60912.3折线图表610实例409利用图表分析产品销售走势610实例410利用图表分析彩票中奖情况612实例411多曲线数据分析614实例412网站人气指数曲线分析61712.4饼型图表619实例413利用饼型图分析公司男女比率619实例414利用饼型图分析产品市场占有率620实例415利用多饼型图分析企业人力资源情况621 12.5图表技术的应用623实例416绘制验证码623实例417绘制不规则窗体625第13章硬件相关开发技术62713.1串口控制628实例418通过串口发送数据628实例419通过串口关闭对方计算机63013.2加密狗631实例420密码写入与读出加密狗631实例421使用加密狗进行身份验证63413.3IC卡应用635实例422向IC卡中写入数据635实例423读取IC卡中的数据638实例424利用IC卡制作考勤程序63913.4监控641实例425简易视频程序641实例426摄像头监控录像644实例427超市摄像头定时监控系统64513.5语音卡控制647实例428语音卡电话呼叫系统647实例429客户来电查询系统652实例430语音卡实现电话录音65313.6手机程序开发655实例431利用短信猫收发短信息655实例432利用短信远程关闭计算机659实例433短信息采集烟草销售数据660实例434“春晚”节目评比短信息互动平台663 13.7其他程序664实例435条形码扫描器销售商品664实例436利用神龙卡制作练歌房程序665第14章网络开发技术66914.1计算机设置670实例437更改计算机名称670实例438通过计算机名获取IP地址672实例439通过IP地址获取主机名称673实例440修改本机IP地址674实例441得到本机MAC地址677实例442获得系统打开的端口和状态678实例443更改DNS地址68014.2远程控制681实例444远程控制计算机682实例445远程服务控制68314.3网络复制文件686实例446网络中的文件复制68614.4局域网管理688实例447在局域网内发送信息688实例448获取网络中所有工作组名称690实例449列出工作组中所有计算机692实例450获取网络中某台计算机的磁盘信息693 实例451映射网络驱动器69414.5网络连接与通信696实例452编程实现Ping操作69614.6网络聊天室698实例453利用C#设计聊天程序698实例454编写网络聊天室700第15章Web编程70315.1浏览器应用704实例455制作自己的网络浏览软件704实例456XML数据库文档的浏览70815.2上网控制710实例457定时上Internet710实例458监测当前网络连接状态71215.3邮件管理713实例459收取电子邮件713实例460SMTP协议发送电子邮件71715.4网上信息提取719实例461提取并保存网页源码719实例462提取网页标题722第16章加密、安全与软件注册72516.1数据加密与解密726实例463数据加密技术726实例464文本文件加密与解密727实例465利用图片加密文件73216.2Access数据库安全735实例466如何编程修复Access数据库735实例467访问带验证模式的Sqlserver 2000数据库73716.3软件注册与加密739实例468利用INI文件对软件进行注册739实例469利用注册表设计软件注册程序741实例470利用网卡序列号设计软件注册程序743实例471根据cpu序列号、磁盘序列号设计软件注册程序746 第17章数据结构与算法74917.1链表的实现750实例472单向链表的实现75017.2双向链表755实例473双向链表75517.3堆栈760实例474堆栈的实现76017.4队列762实例475队列的实现76317.5树的实现764实例476树的实现76417.6排序769实例477冒泡排序769实例478选择排序770实例479插入排序771实例480希尔排序77217.7常见算法的实际应用773实例481判断素数的算法773实例482加密和解密算法774实例483判断身份证是否合法775实例484判断IP地址是否合法的算法777实例485按要求生成指定位数编号778实例486身份证号从15位升到18位算法779第18章C#高级开发78118.1Windows服务开发782实例487将局域网聊天程序开发成Windows服务78218.2Remoting分布式开发789实例488运用Remoting实现文件传送789实例489大规模数据访问时缓解服务器压力79618.3COM+服务开发802实例490COM+服务实现银行转账系统803实例491COM+服务解决同时访问大量数据并发性807 第19章实用工具81319.1数据库工具814实例492自动配置ODBC的程序814实例493制作SQL Server提取器81719.2个人工具819实例494个人通讯录819实例495电子名片盒822实例496个人日记本823实例497个人理财管理82519.3实用工具827实例498电话区号、邮编管理软件827实例499火车时刻查询软件828实例500网站网址导航程序83219.4其他工具833实例501人民币金额转换834实例502列举局域网SQL服务器836实例503整点报时程序837实例504红绿灯程序839实例505万年历841实例506彩票抽奖机844实例507电子相册846第20章程序打包84920.1最简单的程序打包850实例508最简单的程序打包850实例509将特定文件安装到指定文件夹中85220.2打包注册表信息854实例510打包注册表信息854技术要点对应实例位置857。
WINDOWS程序设计之创建一个简单的Windows应用程序
消息循环的执行顺序可用下图说明:
有 有可用消息吗?
无 空闲处理
Get/Translate/Dispach
以基于对话框的应用程序为例操作讲解项目的建立过84windows程序的控制流程结合开发环境讲解windows应用程序的初始化运行和结束工作都是由应用程序类完成的
Windows程序设计
2000.11
第八章 创建一个简单的Windows应用程序
8.2 三种类型的应用程序结构
用MFC AppWizard可以创建三种类型的应用程序结构: (1)SDI:一次只允许打开一个文档边框窗口; (2)MDI:允许在应用程序的同一个实例中打开多个文档
命令或控件通知都没有缺省的处理函数,要用ClassWizard 把命令或控件通知映射成处理函数。
8.6 创建一个简单的Windows应用程序
以8.3节建立的应用程序环境为基础,添加简单控件,内 容包括简单的文本框、按钮和弹出消息框。
预习:
第六章 6.1
上机练习:
1. 用MFC AppWizard建立基于对话框 的应用程序,增加文本框、按钮和 弹出消息框
InitInstance: Windows允许用户运行同一应用程序的多个副 本或实例。每当启动新的应用程序实例时,WinMain函数都 要调用InitInstance。
应用程序结构不同,InitInstance的缺省内容也不同。可根 据需要在此函数中添加专门的初始化代码。
SetDialogBkColor ( RGB( 255,0,0 ) );
如何使用C编写一个简单的Windows桌面应用程序
如何使用C编写一个简单的Windows桌面应用程序在本文中,我们将探讨如何使用C语言编写一个简单的Windows桌面应用程序。
我们将介绍所需的工具和步骤,以及一些基本的C语言知识。
下面是开发一个简单的Windows桌面应用程序的步骤:第一步:准备开发环境在开始编写C代码之前,我们需要准备好开发环境。
首先,您需要安装一个集成开发环境(IDE),例如Microsoft Visual Studio。
Visual Studio是一个功能强大且易于使用的工具,可以帮助我们快速开发Windows应用程序。
第二步:创建一个新的Windows应用程序项目在Visual Studio中,创建一个新的C语言项目。
选择"File"菜单中的"New",然后选择"Project"。
在"Templates"菜单下找到"C"选项,并选择"Win32 Console Application"。
输入您的项目名称,并选择项目的位置。
第三步:配置项目设置在创建项目后,您需要配置一些项目设置。
在"Project"菜单中选择"Properties",然后选择"Configuration Properties"。
在"General"选项卡下,选择"Character Set"并将其设置为"Use Unicode Character Set"。
这将确保您的应用程序能够正确处理Unicode字符。
第四步:编写代码现在,您可以开始编写C代码。
打开您的项目中的源文件,您将看到一个名为"main.c"的文件。
在这个文件中,您可以编写您的应用程序的主要逻辑。
例如,您可以使用Windows API函数创建一个窗口,处理用户输入等。
第8章 Windows桌面程序开发实例
属性值 “修改(&M)” “确定修改”
Name btnModify
TxtCompan Button y TxtTel TxtMobile TxtEmail TxtAddress TxtCode RadMale “男” Button Button Button
Name btnModOk Text “上一个 (&P)<<--” “下一个 (&N)-->>” “删除(&D)”
控件类型 ListBox TextBox TextBox TextBox TextBox TextBox TextBox TextBox
属性 Name Name Name Name Name Name Name Name Text
属性值 ListBox1 TxtName
控件类 型 Button
属性 Text Text
8.1.2 程序分析与代码
4. 实现添加记录的功能
ListBox1.Items.Add(_customers(i).name) '将记录中的“姓名“一项 显示在列表中 i=i+1 End Function 然后为“添加”按钮的单击事件添加代码。具体代码为: Private Sub btnAdd_Click(…) Handles btnAdd.Click UnLockText() TxtName.Focus() End Sub 最后为“确定添加”按钮的单击事件添加代码。用户单击“确定 添加”按钮,完成真正的添加记录操作,具体代码为: Private Sub btnAddOk_Click(…) Handles btnAddOk.Click Dim sex As String If RadMale.Checked = True Then sex = "男" Else
C#Windows服务程序开发实例程序
C#Windows服 务 程 序 开 发 实 例 程 序
C#Windows服务程序开发实例程序的目的和用途: 很多开机启动程序仅仅加在启动项里面,只有登陆后才真正启动。windows服务在开机未进行用户登录前就启动了。正是利用这一点,解决 一些服务器自动重启后特定软件也自动启动的问题。 C#Windows服务程序开发1. 新建一个服务项目 visual C#----windows----windows服务; C#Windows服务程序开发2. 添加一个dataset(.xsd),用于存储启动目标的路径,日志路径等。 在dataset可视化编辑中,添加一个datatable,包含两列 StartAppPath 和 LogFilePath。分别用于存储目标的路径、日志路径。 我认为利用dataset.xsd存储配置参数的优势在于可以忽略xml解析的具体过程直接使用xml文件。 在dataset中 提供了ReadXml方法用于读取xml文件并将其转换成内存中的一张datatable表,数据很容易取出来!同样,WriteXml方法用于 存储为xml格式的文件,也仅仅需要一句话而已。 C#Windows服务程序开发3. program.cs文件 作为程序入口,代码如下: view plaincopy to clipboardprint? using System.Collections.Generic; using System.ServiceProcess; using System.Text;
if (File.Exists(StartAppPath)) { try { Process proc = new Process(); proc.StartInfo.FileName = StartAppPath; //注意路径 //proc.StartInfo.Arguments = "";
精品课件-Windows CE应用程序设计-第8章
“帮助|索引”中输入“Keyboard Reference”可查看所有
预定义的按键处理过程。
第八章 输 入 面 板
8
8.2 辅助输入面板
辅助输入面板图标位于窗口下部状态栏的中部,用户点 击该图标可以打开和隐藏输入面板,应用程序也可以调用 SipShowIM过程显示和隐藏输入面板,即
BOOL SipShowIM( DWORD dwFlag );
// 这里的 10 个控件的 ID 号依次从 18 至 27,最小值为 IDC_LVCHILD wndChild = GetDlgItem(hWnd,ID_LVCHILD+i); MoveWindow(wndChild,x[i],y[i]-nPos,xw[i],yh[i],TRUE); }
第八章 输 入 面 板
示。在图8-6中的“配置属性|链接器|命令行”中的“附加
选项”中输入aygshell.lib。
第八章 输 入 面 板
29
图8-6 实例mySIP的属性页
第八章 输 入 面 板
30
主程序入口文件mySIP.cpp与框架程序的程序入口文件
内容相同,只是这里的头文件为mySIP.h。
主窗口过程文件除了对消息WM_CREATE、WM_PAINT、
第八章 输 入 面 板
1
第八章 输 入 面 板
8.1 键盘 8.2 辅助输入面板 8.3 输入法实例 8.4 输入法实例解释 8.5 小结
第八章 输 入 面 板
2
8.1 键 盘
少数Windows CE设备具有硬键盘,键盘的布局一般符合 “QWERTY”键盘布局,与桌面计算机的键盘布局基本相同, 只是键面缩小到适合嵌入式设备的大小。15Leabharlann 图8-1 输入面板实例工作环境
Windows程序开发
DialogResult
用户点了哪个按钮?
演示示例3:获得消息框的结果
示例3代码分析
示例3-关闭窗口代码分析:
DialogResult dr = MessageBox.Show("是否关闭窗体", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (dr == DialogResult.Yes) //使用if语句判定是否单击“是”按钮 { e.Cancel = false; //如果单击“是”按钮则关闭窗体 通过 “.”运算符取得某 } 种消息框的结果 else { e.Cancel = true; //否则,不执行操作 }
我们需要做的: 针对我们感兴趣的事件,编写相应的事件处理程序
编写事件处理程序
编写事件处理程序的步骤:
1、选中控件 2、在“属性”窗口中单击 3、找到事件 4、生成事件处理方法 5、编写处理代码
演示示例2:MouseMove 的事件处理程序
事件处理程序分析
示例2中添加的事件处理程序:
事件源 鼠标事件参数
Windows程序开发
演练:创建Windows桌面应用程序(C++)
”。
处理的第⼀条消息是WM_PAINT消息。
应⽤程序收到此消息,此时必须更新其显⽰窗⼝的⼀部分。
(第⼀次显⽰窗⼝时,必须更新整个窗⼝。
)要处理WM_PAINT消息,⾸先应调⽤BeginPaint,然后处理所有的逻辑以在窗⼝中布局⽂本、按钮和其他控件,然后调⽤EndPaint。
对于此应⽤程序,开始调⽤和结束调⽤之间的逻辑是在窗⼝中显⽰字符串 “H PAINTSTRUCT ps; HDC hdc; TCHAR greeting[] = _T("Hello, World!"); switch (message) { case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // Here your application is laid out. // For this introduction, we just print out "Hello, World!" // in the top left corner.2. 应⽤程序通常会处理许多其他消息,例如WM_CREATE和WM_DESTROY。
以下代码显⽰基本但完整的WndProc函数。
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { PAINTSTRUCT ps; HDC hdc; TCHAR greeting[] = _T("Hello, World!"); switch (message) { case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // Here yo ⽰例⽣成此⽰例1. 按照本演练前⾯部分介绍的“创建基于 Win32 的项⽬”⽅法创建基于 Win32 的项⽬。
2. 按照以下步骤复制代码,然后将其粘贴在 GT_HelloWorldWin32.cpp 源⽂件中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8.1.2 程序分析与代码
4. 实现添加记录的功能 首先定义一个函数CreatCustom(),为数组_customers(i) 的各个成员赋值,成员的值来源于定义的变量值, 已添加的记录的“姓名”会显示在列表中
Public Function CreatCustom(ByVal name As String, ByVal sex As String, ByVal birthday As String, _ ByVal company As String, ByVal tel As String, ByVal movebal As String, ByVal email As String, _ByVal address As String, ByVal code As String) '添 加操作 _customers(i).name = name _customers(i).tel = tel _customers(i).movebal = movebal _customers(i).email = email _customers(i).address = address _customers(i).birthday = birthday _customers(i).sex = sex _customers(i).company = company
8.1.2 程序分析与代码
4. 实现添加记录的功能
ListBox1.Items.Add(_customers(i).name) '将记录中的“姓名“一项 显示在列表中 i=i+1 End Function 然后为“添加”按钮的单击事件添加代码。具体代码为: Private Sub btnAdd_Click(…) Handles btnAdd.Click UnLockText() TxtName.Focus() End Sub 最后为“确定添加”按钮的单击事件添加代码。用户单击“确定 添加”按钮,完成真正的添加记录操作,具体代码为: Private Sub btnAddOk_Click(…) Handles btnAddOk.Click Dim sex As String If RadMale.Checked = True Then sex = "男" Else
第8章 Windows桌面程 序开发实例
学习目标
通过实例掌握Windows桌面程序的开发流 程; 掌握各种控件在处理实际问题中的应用; 通过实例掌握面向对象程序编写思想与方 法。
8.1 通讯录程序
8.1.1 题目要求 设计一个通讯录,运行界面参照图8.1。 设计一个通讯录,运行界面参照图 。该通讯录应 该具有以下功能: 该具有以下功能: 通讯录中条记录包括的字段有:姓名、性别、 通讯录中条记录包括的字段有:姓名、性别、出 生日期、工作单位联系电话、手机、电子邮箱、 生日期、工作单位联系电话、手机、电子邮箱、 通讯地址和邮政编码 用户可以添加、修改、删除、浏览记录, 用户可以添加、修改、删除、浏览记录,并可以 按照姓名进行查找。 按照姓名进行查找。 每次对通讯录的修改以文本文件的形式保存, 每次对通讯录的修改以文本文件的形式保存,以 保证数据的长期存储。 保证数据的长期存储。
属性值 “修改(&M)” “确定修改”
Name btnModify
TxtCompan Button y TxtTel TxtMobile TxtEmail TxtAddress TxtCode RadMale “男” Button Button Button
Name btnModOk Text “上一个 (&P)<<--” “下一个 (&N)-->>” “删除(&D)”
5. 实现修改记录的功能:该功能的实现思想与添加记录的思想一 实现修改记录的功能: 首先定义函数ModifyCustom(),用于修改一条记录, 致,首先定义函数 ,用于修改一条记录, Public Function ModifyCustom(ByVal index As Integer, ByVal name As String, ByVal sex As String, _ByVal birthday As String, ByVal company As String, ByVal tel As String, ByVal movebal As String, _ByVal email As String, ByVal address As String, ByVal code As String) '//修改操作 _customers(index + 1).name = name '_customers(i)其他属性修改 '_customers(i) 方法与该语句类似,以下代码省略 _customers(index + 1).tel = tel _customers(index + 1).movebal = movebal _customers(index + 1).email = email _customers(index + 1).address = address _customers(index + 1).birthday = birthday _customers(index + 1).sex = sex _customers(index + 1).company = company _customers(index + 1).code = code ListBox1.Items(index) = name End Function
8.1.2 程序分析与代码
4. 实现添加记录的功能
sex = "女" End If CreatCustom(TxtName.Text, sex, Cbirthday.Value, TxtCompany.Text, TxtTel.Text, TxtMobile.Text, TxtEmail.Text, TxtAddress.Text, TxtCode.Text) intcount = ListBox1.Items.Count - 1 ListBox1.SelectedIndex = 0 ShowCustom(0) LockText() End Function
8.1.2 程序分析与代码
5. 实现修改记录的功能: 实现修改记录的功能: 然后为“修改”按钮的单击事件添加代码,这里只要解锁各个控 件即可,具体代码为: Private Sub btnModify_Click(…) Handles btnModify.Click UnLockText() TxtName.Focus() End Sub
TxtEmail.ReadOnly = TxtAddress.ReadOnly = txtCompany.ReadOnly = TxtCode.ReadOnly =True Sub End
Private Sub UnLockText() '解锁 TxtName.ReadOnly = TxtCompany.ReadOnly = TxtTel.ReadOnly = TxtMobile.ReadOnly =False RadMale.Enabled = RadFemale.Enabled = Cbirthday.Enabled = True TxtEmail.ReadOnly = TxtAddress.ReadOnly =
1.
8.1.2 程序分析与代码
2.锁定 解锁控件 锁定/解锁控件 锁定 Private Sub LockText() ‘锁定 TxtName.ReadOnly = TxtCompany.ReadOnly = TxtTel.ReadOnly = TxtMobile.ReadOnly = True RadMale.Enabled = RadFemale.Enabled = Cbirthday. Name
“查找(&F)” btnFind “保存(&S)” btSave Cbirthday Form1 “通讯录”
“确定添加”DataTimerP Name icker btnAddOk Form Name Text
8.1.2 程序分析与代码
定义全局变量 在程序的开始处变量值,采用结构体数组存储每条记录信息, 具体代码为: Public _customers(1000) As Custom '定义集合保存记录 Public intcount As Integer '查询变量保存索引 Public i As Integer <Serializable()> Public Structure Custom '构建结构 Public name,sex, birthday,company, tel, movebal, email, address, code As String End Structure
8.1.2 程序分析与代码
5. 实现修改记录的功能: 实现修改记录的功能: 最后为“确定修改”按钮的单击事件添加代码。用户单击“确定修 改”完成真正的修改,该操作主要调用修改函数CreatCustom(), 具体代码为: Private Sub btnModOk_Click(…) Handles btnModOk.Click Dim sex As String If RadMale.Checked = True Then sex = "男" Else sex = "女" End If ModifyCustom(ListBox1.SelectedIndex, TxtName.Text, sex, Cbirthday.Value, TxtCompany.Text, TxtTel.Text, TxtMobile.Text, TxtEmail.Text, TxtAddress.Text, TxtCode.Text) intcount = ListBox1.Items.Count - 1 ListBox1.SelectedIndex = 0 ShowCustom(0) LockText()