CSharp-Win实践开发教程课件(全).ppt

上传人:w****2 文档编号:6234752 上传时间:2020-02-20 格式:PPT 页数:408 大小:22.40MB
返回 下载 相关 举报
CSharp-Win实践开发教程课件(全).ppt_第1页
第1页 / 共408页
CSharp-Win实践开发教程课件(全).ppt_第2页
第2页 / 共408页
CSharp-Win实践开发教程课件(全).ppt_第3页
第3页 / 共408页
点击查看更多>>
资源描述
基于C 语言 主讲教师 钱哨a本课学时 72课时联系方式 qianshao Windows程序设计 课程地位 综合基础课程 SQLServer XML Ajax Javascript XML ASP NET Oracle RSS ComputerBase HTML JavaScript OOP Java C DatabaseBase JSP Servlet EJB WebService C Struts JSF Testing SQA Linux WinForms 第一章 Windows编程基础 本章主要内容介绍1 1windows和窗体1 2VisualSIDE简介1 3事件处理 CONTENTs 1 1Windows和窗体 本章学习目标 理解Windows窗体使用基本控件如标签 文本 按钮 列表框和组合框掌握窗体的常用属性和方法 GUI界面 1 1Windows和窗体 各种控件 属性 放置控件的区域 1 1Windows和窗体 WinForms应用程序可能存在多个窗体 用于获取用户输入的数据和向用户显示数据 System Windows Forms 简单而强大改善了接口和基类IntelliSense新的管理数据提供程序安全灵活的控件通晓数据向导 1 1Windows和窗体 1 1 2创建WinForms应用程序 开始 程序 MicrosoftVisualStudio NET2005 MicrosoftVisualStudio NET2005 创建WinForms应用程序6 2 设计窗口 1 1 2创建WinForms应用程序 usingSystem usingSystem Drawing usingSystem Collections usingSystem ComponentModel usingSystem Windows Forms namespaceSampleProject Form1的摘要说明 publicclassForm1 System Windows Forms Form 必需的设计器变量 提供了大量绘图工具的访问权限 基础核心命名空间 ArrayList BitArray Hashtable Stack StringCollection和StringTable类 大量窗体和控件 从System Windows Forms Form派生 VisualStudio NET生成的代码 1 1 2创建WinForms应用程序 privateSystem ComponentModel Containercomponents null publicForm1 Windows窗体设计器支持所必需的 InitializeComponent TODO 在InitializeComponent调用之后添加任何构造函数代码 构造函数调用InitializeComponent 方法 下面代码见 Form1 Designer cs文件privatevoidInitializeComponent ponents newSystem ComponentModel Container this Size newSystem Drawing Size 300 300 this Text Form1 项目的容器 创建WinForms应用程序 清理所有正在使用的资源 下面代码 Form1 Designer cs protectedoverridevoidDispose booldisposing if disposing if components null components Dispose base Dispose disposing 释放系统资源 1 1 2创建WinForms应用程序 下面代码见 program cs文件 STAThread staticvoidMain Application Run newForm1 程序的主入口点 1 1 3WinForms中的常用控件 可视化界面组件统称为控件 System Windows Forms Control 1 1 3WinForms中的常用控件 标签 按钮 组合框 列表框 文本框 标签 1 1 3WinForms中的常用控件 标签控件 按钮控件 文本框控件 列表控件 组合框控件 privatevoidlinkLabel1 LinkClicked objectsender LinkLabelLinkClickedEventArgse linkLabel1 LinkVisited true Form2newform newForm2 newform Show this Hide privatevoidlinkLabel2 LinkClicked objectsender LinkLabelLinkClickedEventArgse label2 Visible true label2 Show privatevoidlinkLabel3 LinkClicked objectsender LinkLabelLinkClickedEventArgse label2 Visible false label2 Hide 案例 窗口的打开和关闭 文本框 1 1 3WinForms中的常用控件 按钮 1 1 3WinForms中的常用控件 案例 用户登录设计 privatevoidbutton2 Click objectsender EventArgse clear privatevoidbutton1 Click objectsender EventArgse if textBox1 Text string Empty textBox2 Text string Empty MessageBox Show 信息禁止为空 登录提示 clear return if textBox1 Text Equals admin textBox2 Text Equals admin MessageBox Show 用户名称或密码为空 登录提示 clear return else MessageBox Show 欢迎您登录本系统 消息提示 clear publicvoidclear textBox1 Clear textBox2 Clear textBox2 Focus 列表框 1 1 3WinForms中的常用控件 使用列表框 1 privatevoidForm1 Load objectsender EventArgse this listBox1 Items Add 软件部 this listBox1 Items Add 硬件部 this listBox1 Items Add 财务部 this listBox1 Items Add 人事部 privatevoidlistBox1 SelectedIndexChanged objectsender EventArgse MessageBox Show 您选择的部门是 listBox1 SelectedItem ToString 位列第 listBox1 SelectedIndex ToString 信息提示 使用列表框 2 privatevoidbutton1 Click objectsender EventArgse listBox1 Items Clear listBox1 Items Add 软件部 listBox1 Items Add 硬件部 listBox1 Items Add 财务部 listBox1 Items Add 人事部 privatevoidbutton2 Click objectsender EventArgse listBox1 Items Insert 2 插入值 label1 Text 已经添加 listBox1 Items Count ToString 条记录 组合框 1 1 3WinForms中的常用控件 使用组合框 privatevoidForm1 Load objectsender EventArgse boBox1 Items Add 财务部 boBox1 Items Add 产品部 boBox1 Items Add 销售部 boBox1 Items Add 生产部 默认的选择是 产品部 boBox1 SelectedIndex 1 boBox2 Items Add 财务部 boBox2 Items Add 产品部 boBox2 Items Add 销售部 boBox2 Items Add 生产部 默认的选择是 产品部 boBox2 SelectedIndex 1 boBox3 Items Add 财务部 boBox3 Items Add 产品部 boBox3 Items Add 销售部 boBox3 Items Add 生产部 默认的选择是 产品部 boBox3 SelectedIndex 1 消息框窗口 MessageBox Show 消息文本 消息框用于显示消息 Abort Cancel Ignore No None Ok Retry和Yes if MessageBox Show 保存文件 保存 MessageBoxButtons YesNo MessageBoxIcon Information MessageBoxDefaultButton Button1 DialogResult Yes 保存文件所用的代码 保存后的MessageBox 1 1 3WinForms中的常用控件 消息框窗口 privatevoidbutton1 Click objectsender EventArgse MessageBox Show 嘿 这是简单提示 信息提示 privatevoidbutton2 Click objectsender EventArgse DialogResultresult MessageBox Show 嘿 这是问询提示 问询提示 MessageBoxButtons YesNo if result DialogResult Yes label1 Text 您选择了YES else label1 Text 您选择了NO privatevoidbutton3 Click objectsender EventArgse DialogResultresult MessageBox Show 嘿 这是带有图标的问询提示 问询提示 MessageBoxButtons YesNoCancel MessageBoxIcon Question MessageBoxDefaultButton Button3 MessageBoxOptions RightAlign if result DialogResult Yes label1 Text 您选择了图标YES elseif result DialogResult Cancel label1 Text 您选择了图标取消 elseif result DialogResult No label1 Text 您选择了图标NO 应用程序示例 解决方案资源管理器 属性窗口 工具箱 应用程序示例 privatevoidbtnAdd Click objectsender System EventArgse privatevoidbtnAdd Click objectsender System EventArgse this txtEmpName Enabled true this txtAddress Enabled true this cboDesignation Enabled true this lstCurrDeptName Enabled true privatevoidbtnCancel Click objectsender System EventArgse this txtEmpName Text this txtAddress Text this cboDesignation Text 经理 privatevoidbtnExit Click objectsender System EventArgse stringstr for intctr 0 ctr this lstCurrDeptName SelectedItems Count 1 ctr str n this lstCurrDeptName SelectedItems ctr ToString MessageBox Show 选定的项目为 n str Application Exit 应用程序示例 privatevoidcboDesignation SelectedIndexChanged objectsender System EventArgse MessageBox Show 您已经选定了 this cboDesignation SelectedItem ToString 在退出应用程序之前 使用MessageBox Show 显示在str变量中存储选定项的消息框 图标 系统按钮 标题栏 控件 1 1 4窗体容器简介 1 1 4窗体容器简介 SDI 单文档界面 MDI 多文档界面 1 1 5窗体的属性 1 1 5窗体的常用方法和事件 示例 显示另一窗体 示例 显示另一窗体 被调用的窗体类 窗体实例 new 被调用的窗体类 窗体实例 Show 下面 在菜单的单击事件中写下如下的事件 privatevoidmenuItem3 Click objectsender EventArgse Form2Mdichild newForm2 Mdichild MdiParent this Mdichild Show 当然 需要再建立两个窗体对象 form2和form3窗体 示例1 在form2窗体中进行如下操作 单击 发送 按钮 应用程序示例 首先 将form2的comboBox1下拉框填充完毕后 增加load事件privatevoidForm2 Load objectsender EventArgse comboBox1 SelectedIndex 0 textBox3 Text textBox1 Focus 其次 添加form2的发送信息事件publicvoidbutton1 Click objectsender EventArgse if textBox1 Text textBox2 Text comboBox1 Text MessageBox Show 姓名 或者邮件 或者提交 信息禁止为空 信息提示 else this Hide Form3childform3 newForm3 this textBox1 Text this textBox2 Text boBox1 SelectedItem ToString this textBox3 Text childform3 Show 最后关闭窗体事件 privatevoidbutton2 Click objectsender EventArgse this Close 应用程序示例 对于form3窗体而言 在系统初始事件填写如下代码 publicpartialclassForm3 Form privatestring name privatestring emailId privatestring subject privatestring feedBack publicForm3 stringvarName stringvarEmail stringvarSubject stringvarFeedBack InitializeComponent 在private变量中存储值this name varName this emailId varEmail this subject varSubject this feedBack varFeedBack 在列表框中放置值listBox1 Items Add 姓名 this name listBox1 Items Add 邮件地址 this emailId listBox1 Items Add 信息主题 this subject listBox1 Items Add 反馈意见 this feedBack privatevoidbutton1 Click objectsender EventArgse MessageBox Show 感谢您输入的反馈 this Close 示例2 在MDI父窗口中 子窗口如何彼此之间传递信息 代码见下 示例3 如何防止重复打开子窗体啊 方法 直接检测是否已经打开此MDI窗体 是否已经打开了 用循环来判断 foreach FormchildrenForminthis MdiChildren 检测是不是当前子窗体名称if childrenForm Name 子窗体名称 是的话就是把他显示childrenForm Visible true 并激活该窗体childrenForm Activate return 下面是打开子窗体Form1childrenForm newForm1 childrenForm MdiParent this childrenForm Show childrenForm WindowState FormWindowState Maximized 示例4 另一种窗体之间的传值技巧 一 传单个值 1 先在Form2中定义一个成员变量和一个属性如下 privatestringform2zhi null publicstringForm2ChuanZhi get returnform2zhi 2 再在Form3中定义一个成员变量和一个属性如下 privatestringform3zhi null publicstringForm3ChuanZhi set form3zhi value get returnform3zhi 3 双击btn ChuanZhi在这个事件中写入以下代码 主要是显示Form3窗体和将Form2中的值传过去 Form3form3 newForm3 form3 Form3ChuanZhi form2zhi 将值传过去form3 Show 代码见下 示例5 另一种窗体之间的传值技巧 二 类保存任意值 代码见下 Winform界面美化技巧 1 从附件资料中确认有第三方动态链接库文件DotNetSkin dll或者IrisSkin2 dll 这两个文件是第三方开发设计的Winform界面美化的主要文件 2 打开VS2005 展开工具箱 右键点击界面选择 添加选项卡 新建选项卡 皮肤 Winform界面美化技巧 4 在工具箱项窗口点击 浏览 导入第三方动态链接库文件DotNetSkin dll或者IrisSkin2 dll 两个dll都是一样的用 不同的是DotNetSkin dll用的皮肤文件是 skn IrisSkin2 dll是用的 ssk 3 在工具箱的新建选项卡 皮肤 里面单击右键 选择 选择项 将展开选择工具箱项 Winform界面美化技巧 5 则在工具箱的皮肤选项卡内将出现皮肤控件 5 皮肤文件的基本用法是 拖拽任何一个皮肤控件到某个窗体上面 进行如下的编码 namespaceporjectname publicpartialclassForm1 Form publicForm1 InitializeComponent this skinEngine1 SkinFile ssk 或是this skinUI1 SkinFile skn Winform界面美化技巧 namespaceWindowsApplication1 publicpartialclassForm7 Form publicForm7 InitializeComponent this skinEngine1 SkinFile ssk stringpath Environment CurrentDirectory skn皮肤 LE4 DEFAULT skn this skinUI1 SkinFile path 有关ssk文件和skn文件库 请参见附件文件库中相关文件 总结 WinForms可用于Windows窗体应用程序开发Windows窗体控件是从System Windows Forms Control类派生的类标签控件用于显示用户不能编辑的文本或图像按钮控件提供用户与应用程序交互的最简便方法组合框控件是列表框控件和文本框控件的组合 用户可以键入文本 也可以从所提供的列表中选择项目窗体提供了收集 显示和传送信息的界面 是GUI的重要元素消息框显示消息 用于与用户交互 基于C 语言 主讲教师 钱哨本课学时 72课时联系方式 qianshao Windows程序设计 回顾 WinForms可用于Windows窗体应用程序开发Windows窗体控件是从System Windows Forms Control类派生的类标签控件用于显示用户不能编辑的文本或图像按钮控件提供用户与应用程序交互的最简便方法组合框控件是列表框控件和文本框控件的组合 用户可以键入文本 也可以从所提供的列表中选择项目窗体提供了收集 显示和传送信息的界面 是GUI的重要元素消息框显示消息 用于与用户交互 第二章 WinForms控件 本章主要内容介绍2 1WinForms的高级控件2 2单 多 文档操作及菜单 CONTENT 本节学习目标 使用WinForms中的高级控件单选按钮图片框选项卡控件滚动条进度条ImageList控件ToolBar控件StatusBar控件Timer控件TreeView控件ListView控件 2 1Winforms的高级控件 2 1 1单选按钮 radioButton Windows窗体单选按钮控件以组的形式使用单选按钮允许用户从多个选项中选择一个选项 2 1 1单选按钮 radioButton 如何按功能分组Windows窗体RadioButton控件 1 在一个容器 如Panel控件 GroupBox控件或窗体 内绘制单选按钮即可将它们分组 2 若要添加不同的组 必须将它们放到面板或分组框中 步骤 1 从 工具箱 的 Windows窗体 选项卡中 将GroupBox或Panel控件拖到窗体上 2 在GroupBox或Panel控件上绘制RadioButton控件 3 代码见下 2 1 2图片框 图片框控件表示可用于显示图像的Windows图片框控件 显示位图 元文件 图标 JPEG GIF或PNG等格式的图形 是一种图形显示控件 图片框 2 1 2图片框 练习1 使用设计器加载图片 Windows窗体 练习2 运行时候修改图片大小和位置 publicForm1 InitializeComponent showpic publicvoidshowpic pictureBox1 Image Image FromFile System Environment GetFolderPath System Environment SpecialFolder Personal image gif pictureBox1 SizeMode System Windows Forms PictureBoxSizeMode StretchImage privatevoidpictureBox1 Click objectsender EventArgse if pictureBox1 Image null pictureBox1 Image Dispose pictureBox1 Image null else showpic 2 1 3选项卡控件 在Windows应用程序中 选项卡用于将相关的控件集中在一起 放在一个页面中选项卡控件用于显示多个选项卡 其中每个选项卡均可包含图片和其他控件选项卡相当于另一个窗体 可以容纳其他控件 选项卡控件 选项卡控件的属性 选项卡控件的属性 设定选项卡的数目 或者 综合应用程序示例 一 设定选项卡的提示信息 总选项卡设计 分选项卡属性设计 综合应用程序示例 二 统计页面操作基本信息 privatevoidtabControl1 SelectedIndexChanged objectsender EventArgse label1 Text 当前操作统计信息为 页面为第 this tabControl1 SelectedIndex ToString 页 选项卡页为 tabControl1 SelectedTab Text 共有页数 tabControl1 TabCount ToString 综合应用程序示例 三 综合应用程序示例 四 使用窗体接受职员的个人信息和职业信息将使用单选按钮 图片框和选项卡控件应用程序提供有两个选项卡页第一个选项卡页显示个人信息的文本框 综合应用程序示例 四 第二个选项卡页显示职员信息的文本框 综合应用程序示例 五 选项卡的基本操作 2 1 4进度条 用于指示操作的进度 完成的百分比外观是排列在水平条中的一定数目的矩形 进度条的属性和方法 案例见下 进度条练习1 加载数据库练习 privatevoidbutton1 Click objectsender EventArgse stringsqlstring DataSource local InitialCatalog zrzx UserID sa SqlConnectionconn newSqlConnection sqlstring stringsql select fromtbl advice SqlCommandcmd newSqlCommand sql conn SqlDataAdapteradp newSqlDataAdapter adp SelectCommand cmd DataSetds newDataSet adp Fill ds conn Dispose conn Close conn null label1 Visible true progressBar1 Visible true progressBar1 Minimum 0 progressBar1 Maximum ds Tables 0 Rows Count progressBar1 BackColor Color Red for inti 0 i ds Tables 0 Rows Count i progressBar1 Value Application DoEvents this label1 Text progressBar1 Value ToString 2 1 6ImageList控件 ImageList控件的属性和方法 位于Systems Windows Forms命名空间内 imgImageList1 Images Add Image FromFile picture gif this picMyPicture Image this imgImageList1 Images 0 在ImageList控件中添加图像的代码 Image类的FromFile 方法用于手动将图像文件添加到ImageList控件中 2 1 6ImageList控件 练习 第一步 加载imagelist控件注意配置imagesize属性 第二步 配置images属性 添加图片信息 第三步 添加一个toolbar控件 第四步 指定toolbar的imagelist控件对象 并添加具体的button对象 两个类 ToolBar ToolBarButton 2 1 7ToolBar控件 ToolBar类的属性和事件 ToolBarButton类的属性和事件 工具栏 示例 创建名为Example1的Windows应用程序 将Form1 cs更改为frmToolBarExample cs 将ToolBar控件拖动到窗体上 并将它命名为tbrToolBar 选择Buttons属性 并单击按钮以显示 ToolBarButton集合编辑器 窗口 添加三个按钮 添加了三个按钮 输出屏幕 privatevoidtbrToolBar ButtonClick objectsender System Windows Forms ToolBarButtonClickEventArgse if e Button this tbrToolBar Buttons 0 MessageBox Show 已单击 打开 按钮 处理ButtonClick事件的代码 案例 第一步 添加toolbar控件 第二步 设置toolbar属性 第三步 添加5个button 第四步 添加imagelist控件 第五步 配置imagelist的images属性 privatevoidForm2 Load objectsender EventArgse toolBar1 ImageList imageList toolBarButton1 ImageIndex 0 toolBarButton2 ImageIndex 1 toolBarButton3 ImageIndex 2 toolBarButton4 ImageIndex 3 toolBarButton5 ImageIndex 4 2 1 8statusStrip控件 StatusStripStatusLabel使用文本和图像向用户显示应用程序当前状态的信息 案例 统计文本字数信息 代码见下 2 1 8statusStrip控件 案例 c winForm将窗体状态栏StatusStrip分成左中右三部分右边显示当前时间 通过StatusStrip显示窗体状态栏同时将状态栏分成三部分居左边显示相关文字信息中间空白显示居右边显示时间信息 具体实现见下 2 1 8statusStrip控件 案例 c StatusStrip通过什么方式显示进度 2 1 9Timer控件简介 03 15 04 在应用程序中显示实际时间 按指定的时间长度显示图像 需要一种可在程序运行时操控时间的机制 WinForms的Timer控件 2 1 9Timer控件简介 拖放 2 1 9Timer控件简介 对特定的时刻响应 按照某个周期触发事件 与用户无关 可以通过编程 在规定的时刻执行相应动作 组件与其他控件不同 它不向用户提供用户界面 因此没有必要显示在WinForms设计器的界面上 Timer类包含在System Windows Forms命名空间中 2 1 9Timer控件的必要性 Timer控件为开发人员提供了一种在经过指定的时间间隔或到达指定的绝对时间时根据代码进行响应的方式 2 1 9Timer控件的属性 方法和事件 Timer控件名的前缀是 tmr 例如 tmrTicker tmrTickTimer Timer控件应用程序示例1 要求显示计算机运行的时间长度和应用程序运行的时间长度 Timer控件应用程序示例1 动画演示 移动的画面 privatevoidbutton1 Click objectsender EventArgse timer1 Start privatevoidbutton2 Click objectsender EventArgse timer1 Stop privatevoidtimer1 Tick objectsender EventArgse pictureBox1 Left 5 if pictureBox1 Right 0 pictureBox1 Left Width Timer控件应用程序示例2 publicclassfrmTickCounter System Windows Forms Form privateintcompuTime 为窗体声明一个私有整型变量 privatevoidfrmTickCounter Load objectsender System EventArgse compuTime Environment TickCount frmTickCounter窗体的Load事件 Timer控件应用程序示例2 privatevoidtmrTickTimer Tick objectsender System EventArgse longcurTickValue Environment TickCount longdifference curTickValue compuTime longcomputerHours computerMinutes computerSeconds longapplicationHours applicationMinutes applicationSeconds 将毫秒转换成小时 分钟和秒computerHours curTickValue 3600 999 24 computerHours curTickValue 3600 999 24 computerMinutes curTickValue 60 999 60 computerSeconds curTickValue 999 60 applicationHours difference 3600 999 24 applicationMinutes difference 60 999 60 applicationSeconds difference 999 60 应用程序中使用的局部变量 将毫秒转换成小时 分钟和秒 Timer控件应用程序示例2 this lblComputer Text String Format 这台计算机已经开机 0 小时 1 分钟 2 秒 computerHours ToString computerMinutes ToString computerSeconds ToString this lblApplication Text String Format 这个程序已经运行了 0 小时 1 分钟 2 秒 applicationHours ToString applicationMinutes ToString applicationSeconds ToString 显示每个标签的输出结果 privatevoidbtnClose Click objectsender System EventArgse this Close 关闭应用程序 Timer控件应用程序示例3 流失的时间 1 用 net建立一个Windows应用程序2 在项目下添加一个类命名为 Time 3 编写 Time 类得实现代码4 在窗体中放两个Label控件和一个时钟 Timer 控件5 编写窗体得Load事件和 Timer 控件的Tick事件 代码见下 2 1 10ListView控件 可折叠的TreeView ListView 选择列出项目的视图类型 2 1 10ListView控件 创建与Windows资源管理器的右窗口相似的用户界面 可用于以特定样式或视图类型显示列表项 四种视图模式 即大图标 小图标 列表和详细资料 ListView控件的属性和方法 ListView控件名的前缀是 lvw 如 lvwList lvwListItems Column集合和Column对象 ListView控件的Columns属性表示控件中出现的所有列标题的集合列标题是ListView控件中包含标题文本的一个项ColumnHeader对象定义在控件的View属性设置为 Details 值时 作为ListView控件的一部分显示的那些列如果ListView控件没有没有任何列标题 并且View属性设置为Details 则ListView控件不显示任何项 ListView控件的编辑列 组和项 案例1 编辑列 ListView控件的编辑列 组和项 案例1 编辑列 ListView控件的编辑列 组和项 案例1 编辑列 项集合和项对象 ListView控件的Items属性表示包含控件中所有项的集合该属性返回ListView ListViewItemCollection 可以用于ListView中添加新项 删除项或计算可用项数 案例2 添加删除记录 privatevoidForm2 Load objectsender EventArgse ColumnHeaderobjheader newColumnHeader objheader Text 姓名 objheader TextAlign HorizontalAlignment Center objheader Width 40 listView1 Columns Add objheader privatevoidbutton1 Click objectsender EventArgse listView1 Columns Add 年龄 40 HorizontalAlignment Center listView1 Columns Add 班级 40 HorizontalAlignment Center listView1 Columns Add 性别 40 HorizontalAlignment Center listView1 Columns Add 职业 40 HorizontalAlignment Center button1 Enabled false privatevoidbutton2 Click objectsender EventArgse listView1 Columns Remove listView1 Columns 1 案例3 案例见下 案例4 清除列 全部 显示某行信息 privatevoidbutton4 Click objectsender EventArgse this listView1 Clear privatevoidbutton5 Click objectsender EventArgse listView1 Items Clear privatevoidlistView1 SelectedIndexChanged objectsender EventArgse foreach ListViewItemlstinlistView1 SelectedItems 在这里对lst进行处理 lst代表每一个被选中的ListViewItemMessageBox Show lst Text 这里示例显示每一个被选中的项的第一列的文本 通过代码生成见下 案例5 从数据库之中读取数据 并在listview之中显示 2 1 11TreeView控件 2 1 12TreeView控件 用于以节点形式显示文本或数据 这些节点按层次结构顺序排列 Windows资源管理器中左窗格所包含的目录和文件是以树型视图样式排列的 在TreeView控件中 复选框和图标可以和文本一起显示 节点集和节点对象 TreeView控件的Nodes属性表示为TreeView控件指定的树节点集树节点集中的每个树节点对象可包括它本身的树节点集树节点集中Add Remove 和RemoveAt 方法使开发人员可添加和移动集中的单个树节点 添加 修改和删除节点 TreeView控件以层次结构方式显示节点在将新节点添加到现有TreeView时 重要的是注意新节点所添加到的父节点可用设计器模式或用户界面在TreeView上添加或删除节点 添加 修改和删除节点 在窗体上选择已存在的TreeView控件或在窗体上添加一个新控件 在 属性 窗口中单击节点属性旁的省略号 按钮 调用树节点编辑器 添加到树的第一个节点是根节点 其他节点可添加到存在根节点的树上 通过选择根节点或任何其他节点 然后单击 添加子级 按钮 可为树添加子节点 要使用树节点编辑器删除节点 请重复步骤1和2 调用树节点编辑器 然后选择要删除的节点 单击 删除 添加 修改和删除节点 可通过编程方式向TreeView添加节点 TreeNodechNode newTreeNode Textfornewnode tvwTree1 Nodes Add chNode 可通过编程方式从TreeView删除节点 tvwTree1 Nodes Remove tvwTree1 currNode 清除所有节点tvwTree1 Nodes Clear 如果没有选定要删除的节点 则会删除根节点 TreeView控件的事件 TreeView控件名的前缀是 tvw 如 tvwTree tvwList TreeView案例1 1 加入子节点 加入子节点的具体过程是 首先要在TreeView组件中定位要加入的子节点的位置 然后创建一个节点对象 然后利用TreeVeiw类中对节点的加入方法 即 Add 方法 加入此节点对象 treeView1 SelectedNode Nodes Add tmp 2 加入兄弟节点 treeView1 SelectedNode Parent Nodes Add tmp 3 删除节点 删除节点的具体过程是 首先判断要删除的节点是否存在下一级节点 如果不存在 就调用TreeView类中的Remove 方法 就可以删除节点了 treeView1 SelectedNode Remove TreeView案例1 4 TreeView组件的一些其他常用操作 展开所有节点 定位根节点treeView1 SelectedNode treeView1 Nodes 0 展开组件中的所有节点treeView1 SelectedNode ExpandAll 展开选定节点的下一级节点 treeView1 SelectedNode Expand 折叠所有节点 定位根节点treeView1 SelectedNode treeView1 Nodes 0 折叠组件中所有节点treeView1 SelectedNode Collapse TreeView案例1 5 LISTVIEW实际案例 代码见下 2 1 13CheckedListBox可选列表框控件 1 属性及定义 2 1 13CheckedListBox可选列表框控件 2 常用的方法 2 1 13CheckedListBox可选列表框控件 可选列表框控件CheckedListBox类似于ListBox 但是其列表项的左侧含可以显示选择框 2 1 14numericUpDown微调按钮控件 看起来像文本框和一组箭头的组合 用户可以通过单击箭头来调整具体的数值 用户可以通过单击向上和向下的箭头按钮 增大或减小参数值 具体属性见下表所示 2 1 14numericUpDown微调按钮控件 案例 控制图片的移动 2 1 15monthCalendar日历控件 Windows窗体MonthCalendar控件为用户查看和设置日期信息提供了一个直观的图形界面 该控件以网格形式显示日历 网格包含月份的编号日期 这些日期排列在周一到周日下的七个列中 并且突出显示选定的日期范围 可以单击月份标题任何一侧的箭头按钮来选择不同的月份 与类似的DateTimePicker控件不同 您可以使用该控件选择多个日期 monthCalendar控件通常用于选择日期 典型的日历控件如下图 2 1 15monthCalendar日历控件 2 基本属性 2 1 15monthCalendar日历控件 3 实验案例 运行样式 页面布局 2 1 17DataTimePicker控件 如果希望应用程序能够使用户可以选择日期和时间 并以指定的格式显示该日期和时间 可以使用DataTimePicker控件 DataTimePicker控件用于选择日期和时间 与Monthcalendar控件不同 DataTimePicker控件只能够选择一个时间段 一个基本的DataTimePicker控件如下所示 2 1 17DataTimePicker控件 1 属性 2 案例 2 1 18为程序添加多媒体功能 2 1 18为程序添加多媒体功能 2 1 19用户自定义控件 除了使用VS2005提供的与定义控件之外 C 还允许用户进行控件的自行定义 使用 NETFormWork可以开始和实现一些新的控件 而所有的控件无论是系统自带的抑或是用户自定义的 都来自control类 此处先对control类进行介绍 control类是windows窗体控件的基类 提供了windows窗体控件中进行可视化显示所需的所有基础结构 由于control类提供了很多基础结构 使得开发用户自定义的控件变得相对简单 通常情况下 开发人员自行编写的控件可以分为三类 复合控件 组合现有的控件实现功能 扩展控件 扩展基本控件的功能 自定义控件 从头开始创建一个全新的控件在下列情况下 可以编写自定义控件 1 想要提供控件的自定义图形化表示形式 2 需要实现无法从标准控件获取的自定义功能 2 1 19用户自定义控件 简单案例 给自定义的控件添加代码 编译 本节小结 WinForms单选按钮控件允许用户进行设置WinForms的图片框控件允许用户在窗体上添加和显示位图 元文件 JPEG GIF或PNG等格式的图形WinForms的选项卡控件将类似的功能集中在一起 放在一个对话框或窗口中进度条控件用于指示操作的进度 并显示排列在水平条中一定数目的矩形 通常通过在程序中设置其Value值来显示任务完成的百分比 本节小结 Timer控件为开发人员提供了一种在指定时刻或指定的周期执行任务的控件Timer控件的Interval属性表示时钟的周期 单位为毫秒ListView控件用于以特定样式或视图类型显示列表项 其Items集合对象提供了对其列表项的操作TreeView控件用于以节点形式显示文本或数据 这些节点按层次结构顺序排列TreeView控件的Nodes集合对象提供了对树型节点的操作 2 2单 多 文档操作及菜单 了解MDI应用程序和SDI应用程序了解菜单和掌握菜单控件的使用掌握ImageList控件掌握ToolBar控件和StatusBar控件演示应用程序示例 本节学习目标 2 2 1单文档和多文档 这是Ann的一个测试 如已有一个文本文件打开 在同一记事本应用程序中 不允许创建第二个文本文件 新建一个记事本实例来打开第二个文本文件 在SDI应用程序中一次只能打开一个文件 2 2 1单文档和多文档 在MDI应用程序中可以同时打开多个文件 应用程序窗口 文档窗口 2 2 2主窗体和子窗体 父窗体 子窗体 子窗体的菜单并入父窗体中 2 2 2主窗体和子窗体3 2 主窗体的特点 启动一个MDI应用程序时 首先显示父窗体它是应用程序中所有其他窗口的容器每个应用程序界面都只能有一个MDI父窗体在任何指定的时间都可以打开多个子窗体任何MDI子窗体都不能移出MDI框架区域关闭MDI父窗体则自动关闭所有打开的MDI子窗体 2 2 2主窗体和子窗体 MDI应用程序的属性 方法和事件 如果窗体为MDI父窗体 则在触发MDI父窗体的Closing事件之前 将触发所有MDI子窗体的Closing事件 另外 在触发MDI父窗体的Closed事件之前 将触发所有MDI子窗体的Closed事件 2 2 3创建MDI窗体 TestFormobjChild newTestForm objChild MdiParent this objChild Show 创建MDI窗体步骤 将IsMdiContainer属性设置为True 选择 项目 添加Windows窗体 添加给定的代码 将TestForm设置为子窗体 MDI父窗体 Closing事件的调用顺序 MDI子窗体 2 2 4激活和去激活窗口 显示活动窗口 this ActivateMdiChild frmChild 激活窗口 MessageBox Show Convert ToString this ActiveMdiChild 显示活动窗口的名称 活动窗口 2 2 5排列子窗口 MDILayout枚举的成员 2 2 5窗口MDI SDI案例1 菜单和窗口设计技术 第一步 设计窗体界面 2 设置系统菜单和右键菜单 1 配置主窗体为容器属性 2 2 5窗口M
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!