收藏 分享(赏)

第六讲Windows高级编程.ppt

上传人:j35w19 文档编号:6901591 上传时间:2019-04-26 格式:PPT 页数:35 大小:4.98MB
下载 相关 举报
第六讲Windows高级编程.ppt_第1页
第1页 / 共35页
第六讲Windows高级编程.ppt_第2页
第2页 / 共35页
第六讲Windows高级编程.ppt_第3页
第3页 / 共35页
第六讲Windows高级编程.ppt_第4页
第4页 / 共35页
第六讲Windows高级编程.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

1、回顾:,Label LinkLabel Button TextBox RadioButton CheckBox GroupBox Panel 下面仅介绍剩余的常用控件,其余参考教材或课件自学!,Windows基本控件-ListBox,功能:列表框, 用于显示一个完整的选项列表,用户可以从中选取一个或多个选项。列表中的每个元素都成为一个“项”。如果项总数超出可以显示的项数,则自动添加滚动条,示例:,列表框中项的添加、删除及编辑可在属性窗口中单击Items属性右侧的按钮打开字符串集合编辑器进行,也可使用Items属性的 Add、Insert、Clear 或 Remove RemoveAt等方法.如

2、 listBox1.Items.Insert(0,”办公室”); listBox1.Items.Remove(listBox1.SelectedItem); 获取列表框当前选定项的文本直接用listBox1.Text,也可如下 单选:string dept = listBox1.SelectedItem.ToString(); 多选:string s=listBox1.SelectedItems0.ToString();,private void Form1_Load(object sender, EventArgs e)this.listBox1.Items.Add(“软件部“);this.

3、listBox1.Items.Add(“硬件部“);this.listBox1.Items.Add(“财务部“);this.listBox1.Items.Add(“人事部“);,列表框举例:,设置两个允许多项选择的列表框,同时将sorted属性设置为true,之后通过添加和移动按钮添加移除选项,private void Form1_Load(object sender, EventArgs e)listBox1.SelectionMode = SelectionMode.MultiExtended;listBox2.SelectionMode = SelectionMode.MultiExte

4、nded;listBox1.Items.Clear();listBox2.Items.Clear();listBox1.Items.Add(“清华大学“);listBox1.Items.Add(“北京大学“);listBox1.Items.Add(“复旦大学“);listBox1.Items.Add(“南京大学“);listBox1.Items.Add(“武汉大学“);private void button1_Click(object sender, EventArgs e)for (int i = listBox1.SelectedItems.Count - 1; i = 0; i-) li

5、stBox2.Items.Add(listBox1.SelectedItemsi);listBox1.Items.Remove(listBox1.SelectedItemsi);private void button2_Click(object sender, EventArgs e)for (int i = listBox2.SelectedItems.Count - 1; i = 0; i-) listBox1.Items.Add(listBox2.SelectedItemsi);listBox2.Items.Remove(listBox2.SelectedItemsi);,Windows

6、基本控件-ComboBox,功能:组合框,类似ListBox 控件,区别在于ListBox只显示用户不能编辑的列表,而ComboBox使用户既可从列表中选择项,也可以输入新文本。只能选一项 DropDownStyle属性为DropDown表示下拉式组合框,由一个可编辑文本区和一个下拉列表组成。当属性值为Simple时为简单组合框,下拉列表不显示,但可通过上下键选择;为DropDownList时为下拉式列表框,此时用户只能选择不能输入。 其它属性和事件:Text属性表示组合框文本区中的内容,使用 SelectedIndex 属性获取或设置当前项,以及使用 SelectedItem 属性获取或设置

7、对对象的引用。当选项发生改变时触发SelectedIndexChanged事件;若想处理用户新增输入可用文本框的焦点转移事件Leave,还有一个AutoCompleteMode属性在键入回车符时认为输入完成,private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)label2.Text =“您选择的是“+ comboBox1.Text;,DomainUpDown控件与NumericUpDown,前者类似组合框,允许输入和从列表中选择文本字符串,不过占用空间更小;后者是在多个数值之间进行选择 前者主要属性是It

8、ems和Text;后者主要是Minimum/Maximum和Increment以及Value,PictureBox控件,图片框,用以显示图片 图片的添加即可在设计阶段通过图片框的Image属性可视化设置,也可写代码如pictureBox1.Image=Image.FromFile(“d:photo.bmp”) 图片框SizeMode属性取值为Normal时会将图片置于图片框左上角,多余外边缘被裁减;取值StretchImage时会拉伸或收缩图片使适应图片框大小;取值AutoSize则自动调整图片框的大小使其适应图片大小;取值CenterImage则图像剧中显示,外边缘被裁减,Timer控件,定

9、时器,运行时不可视控件,不能响应用户单击等操作,只响应时间的流逝,每隔一定时间触发一次Tick事件。一般用于检查系统时钟,判断是否该执行某项任务,如在指定时间内显示启动画面 属性:Enabled属性用以启动或者暂停计时器;Interval属性设置差生Tick事件的间隔,以毫秒为单位。,private void Form1_Load(object sender, EventArgs e)button1.Text = “停止“;timer1.Enabled = true;timer1.Interval = 1000;private void timer1_Tick(object sender, E

10、ventArgs e)label1.Text = DateTime.Now.ToLongTimeString();private void button1_Click(object sender, EventArgs e)if(button1.Text=“开始“)button1.Text=“停止“;timer1.Enabled=true;elsebutton1.Text=“开始“;timer1.Enabled=false;,树视图控件:TreeView,功能:为用户显示树状的节点层次结构,如Windows 资源管理器左侧窗格。树视图中节点可含子节点,且父节点可展开或折叠 用法:单击Nodes属

11、性旁浏览按钮打开树节点编辑器设计节点结构;也可以编程的方式编辑树节点。之后可通过控件的Nodes属性遍历各节点,或者通过控件的SelectedNode属性获取当前TreeView控件中被选定的节点。或通过将节点的 Checked 属性设置为 true 或 false选中或清除节点。 说明:若TreeView有与之关联的ImageList控件,则在树节点编辑器中可以设置节点被选定前后的图像,TreeNode n1=new TreeNode(“市场部”); TreeNode n3=new TreeNode(“研发部”); TreeNode n3=new TreeNode(“技术支持组”); Tre

12、eNode n4=new TreeNode(“服务热线”); treeView1.Nodes.Add(n1); treeView1.Nodes.Add(n2); treeView1.Nodes1.Nodes.Add(n3); treeView1.Nodes1.Nodes0.Add(n4); TreeNode n5=new TreeNode(“办公室”); treeView1.Nodes.Insert(1,n5); treeView1.Nodes.Remove(treeView1.Nodes1); treeView1.Nodes.RemoveAt(1); treeView1.Nodes.Clea

13、r();,图像列表:ImageList,ImageList控件:图像列表控件, 可以将位图、图标添加到 ImageList 中,以供其它控件如Button、Label、TabControl、TreeView或ToolStrip等使用 用法:单击Images属性右侧的浏览按钮添加所需图像文件,之后将该图像列表与具有 ImageList或者SmallImageList/LargeImageList 属性的控件关联(只需将对应控件的ImageList属性设置为ImageList组件名).关联后即可通过索引值或键值访问图像列表中的图像,如button1.ImageList=imageList1;but

14、ton1.ImageIndex=0。此外ImageList的ColorDepth属性确定图像颜色位数,ImageSize 确定图像列表中图像大小 示例:向窗体中拖入一个ImageList控件并添加若干图像;之后添加一Label控件,将其AutoSize属性置False,Dock属性置Fill, Text属性置空,与上面的ImageList组件关联,并设置imageIndex初值;后添加两个按钮,分别将Dock属性置为Left和Right,Text属性设为”上一张”和“下一张”, 为两个按钮添加单击时的事件处理程序,private void button1_Click(object sender

15、, EventArgs e) if (label1.ImageIndex = 0)label1.ImageIndex = imageList1.Images.Count - 1;elselabel1.ImageIndex = label1.ImageIndex - 1; ,日期时间选择控件:DateTimePicker,DateTimePicker控件:供用户从日期或时间列表中选择单个项。表示日期时显示为两部分一个下拉列表(带有以文本形式表示的日期)和一个网格(在单击列表旁边的向下箭头时显示),表示时间时显示为一个可上下调整或直接编辑的数字框 属性事件:默认为日期格式,显示时间格式需将Show

16、UpDown属性设置为 true,并将 Format 属性设置为 Time。也可将Format属性设置为Custom,此时需设置CustomFormat属性为适当的字符串,如“yyyy年MM月dd日 dddd HH:mm:ss tt”。 Value 属性代表选中的日期和时间,默认为当前日期和时间。MaxDate和MinDate属性确定可选日期范围。当所选日期或时间发生改变时触发DateChanged事件,private void dateTimePicker1_ValueChanged(object sender, EventArgs e)DateTime dateTime=this.date

17、TimePicker1.Value;label1.Text = “所选日期为:“ + dateTime.ToShortDateString();label2.Text=“所设时间为:“+dateTime.ToShortTimeString();,进度指示条:ProgressBar,ProgressBar控件:进度指示条, 提示用户某任务进展情况 常规用法:设置Maximum和Minimum属性指定进度条可显示的最大/小值,设置Value属性指定当前进度值 其它用法:先设置Step属性后用PerformStep()方法前进指定进度,或者直接使用Increment()前进指定进度。状态栏中使用进度

18、条最好用ToolStripProgressBar控件,类似,private void button1_Click(object sender, EventArgs e)for (int i = 1; i = 10; +i)progressBar1.Value = i * 10; ,private void button1_Click(object sender, EventArgs e)progressBar1.Step = 10;for (int i = 1; i = 10; +i) progressBar1.PerformStep();,private void button1_Click

19、(object sender, EventArgs e)for (int i = 1; i = 10; +i) progressBar1.Increment(10);,工具提示条:ToolTip,ToolTip控件:工具提示条, 鼠标悬停在控件上时用以弹出提示 常规用法:将ToolTip控件拖入窗体后,窗体上各控件属性中新增一属性如”toolTip1上的ToolTip”,设置提示内容后后即可在鼠标悬停时弹出相应提示。归窗体上各控件共享使用 动态提示:如播放/暂停按钮,控件功能动态改变时应动态设置提示文本,private void button1_TextChanged(object sende

20、r,System.EvenArgs e) if(button1.Text=“开始”)toolTip1.SetToolTip(this.button1,”点击播放”);elsetoolTip1.SetToolTip(this.button1,”点击暂停”); ,第六讲 Windows高级编程,消息框 通用对话框 菜单 快捷菜单 工具栏 状态栏 自定义控件 打印 应用程序部署,1、消息框MessageBox,功能1:预定义的模式对话框,用于向用户显示文本消息。通过调用 MessageBox 类的静态 Show 方法来显示消息框。例如MessageBox.show(“退出?”);利用 Show 方法

21、的若干重载还可以提供标题栏标题,或者设置消息框中出现的按钮 功能2:向用户询问问题,用户通过单击若干按钮之一进行回答。如MessageBox.show(“退出?”,”提示”, MessageBoxButtons.OKCancel,MessageBoxIcon.Question); 之后,可以通过检查 Show的返回值确定用户单击了哪个按钮。 if(MessageBox.Show(“退出?“,“提示“, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) = DialogResult.Yes) Application.Exit();,2

22、、通用对话框打开与保存对话框,说明:分别对应控件OpenFileDialog和SaveFileDialog,不可见控件,位于托盘上,但通过控件的ShowDialog()方法可在运行期间显示对话框 属性方法:ShowDialog() Title InitialDirectory Filter FilterIndex FileName,打开与保存对话框举例,private void button1_Click(object sender, EventArgs e) openFileDialog1.InitialDirectory = “D:教学dotnet“;openFileDialog1.Fil

23、ter = “Word文档|*.doc|文本文件|*.txt|所有文件|*.*“;openFileDialog1.FilterIndex = 3;if (openFileDialog1.ShowDialog() = DialogResult.OK)label1.Text = openFileDialog1.FileName; private void button2_Click(object sender, EventArgs e) saveFileDialog1.InitialDirectory = “D:教学dotnet“;saveFileDialog1.Filter = “Word文档|

24、*.doc|文本文件|*.txt|所有文件|*.*“;saveFileDialog1.FilterIndex = 1;saveFileDialog1.OverwritePrompt = true; /若出现重名现象则提示if (saveFileDialog1.ShowDialog() = DialogResult.OK)label2.Text = saveFileDialog1.FileName; ,打开与保存文本文件举例,一个Panel停靠到顶端,当中加两个按钮;一个文本框,Dock属性设为fill;一个打开文件对话框和一个保存文件对话框,Filter属性如下设置:,打开按钮代码:,priv

25、ate string fileName=“; /窗体类添加私有成员private void button1_Click(object sender, EventArgs e) StreamReader sr=null;try/捕获异常事件 openFileDialog1.Title = “打开“;openFileDialog1.FileName = “;if (openFileDialog1.ShowDialog() = DialogResult.OK)/打开选定路径上的文本文件sr = new StreamReader(openFileDialog1.FileName, Encoding.D

26、efault);this.fileName = openFileDialog1.FileName;this.Text=Path.GetFileNameWithoutExtension(this.fileName)+“记事本“;textBox1.Text = sr.ReadToEnd();/处理异常事件catch (Exception error) MessageBox.Show(error.Message.ToString(); finally if(sr!=null) sr.Close(); ,保存按钮代码:,private void button2_Click(object sender,

27、 EventArgs e) StreamWriter sw=null;if (this.fileName = “) saveFileDialog1.Title = “保存“;saveFileDialog1.FileName = “*.txt“;if (saveFileDialog1.ShowDialog() = DialogResult.OK) trythis.fileName = saveFileDialog1.FileName;sw=new StreamWriter(fileName,false, Encoding.Default);sw.Write(textBox1.Text); sw.

28、Flush(); textBox1.Modified = false;this.Text = saveFileDialog1.FileName+ “记事本“;catch (Exception er) MessageBox.Show(er.Message.ToString(); finally sw.Close(); elsetry sw = new StreamWriter(this.fileName, false, Encoding.Default);sw.Write(textBox1.Text);textBox1.Modified = false;catch (Exception ex)

29、MessageBox.Show(ex.Message.ToString(); finally sw.Close(); ,通用对话框颜色与字体对话框,说明:颜色对话框用ColorDialog控件,不可见控件,运行时可通过ShowDialog()方法显示对话框,Color属性表示选定的颜色. 控件FontDialog对应字体对话框,显示需调用方法ShowDialog();属性ShowColor确定在对话框中是否显示字体颜色选项,ShowEffect确定是否显示特殊效果选项;Font表选择的字体,color属性表示字体颜色 举例:,private void button1_Click(object

30、sender, EventArgs e) if (colorDialog1.ShowDialog() = DialogResult.OK)textBox1.BackColor = colorDialog1.Color;textBox1.Text =“背景色为“+colorDialog1.Color.Name; private void button2_Click(object sender, EventArgs e)fontDialog1.ShowColor = true;fontDialog1.ShowEffects = true;if (fontDialog1.ShowDialog() =

31、 DialogResult.OK)textBox1.Font = fontDialog1.Font;textBox1.ForeColor = fontDialog1.Color; ,菜单-MenuStrip控件,使用:将MenuStrip控件拖动到窗体,则窗体上方出现菜单编辑器,同时MenuStrip控件出现在下方控件栏中,如下图。添加菜单项或子菜单项直接单击区域”请在此处输入”并输入菜单名即可.也可通过属性窗口直接插入菜单标准 说明:菜单名设为-则自动创建一个菜单分割条;访问键,如文件(快捷键设置菜单项的ShortcutKeys属性,菜单图标设置Image属性,单击菜单项都触发该菜单项的Cl

32、ick事件。 其它:Name+Enabled+Visible+Checked+CheckOnClick,记事本程序初步:,内容文本框:注意name 停靠 多行 滚动条 AcceptTab WordWrap等属性的设置 格式菜单-自动换行:注意 Checked CheckOnClick属性 openFileDialog与SaveFileDialog注意过滤规则和默认路径、默认文件名、默认扩展名的设置 编辑菜单各菜单项注意有效性控制,各菜单事件处理程序(部分),记事本程序部分菜单事件处理程序源码.txt,快捷菜单(上下文菜单)ContextMenuStrip,用法:添加ContextMenuStr

33、ip控件,将关联控件的属性ContextMenuStrip设为所添加的快捷菜单控件。之后类似普通菜单设置菜单项,或通过项集合编辑器设置菜单项。最后添加各菜单项的事件处理程序即可,工具栏toolStrip控件,用法:拖入工具栏,选中后逐个插入或编辑,或通过属性窗口直接插入标准工具栏 工具按钮主要处理单击事件,单击工具按钮时通常执行类似代码:”newFileMenuItem.PerformClick();”,状态栏StatusStrip控件,用法:拖入状态栏,选中后逐个插入或编辑,或通过属性窗口Items属性打开集合编辑器进行设置 信息显示:在其它控件的事件处理中设置状态栏信息.如保存时设置状态栏

34、上的ProgressBar控件和Label控件,打印,相关控件:PrintDocument+PageSetupDialog+ PrintDialog+PrintPreviewDialog+PrintPreviewControl 用法:添加需要用到的控件,在PrintDocument1控件的PrintPage事件中调用绘图函数输出打印内容。此外,还需将页面设置对话框、打印预览对话框的Document属性关联到PrintDocument1;最后弹出打印对话框进行设置后执行printDocument1.Print()即可,private void pageSetupMenuItem_Click(ob

35、ject sender, EventArgs e) pageSetupDialog1.Document = printDocument1;pageSetupDialog1.ShowDialog(); private void previewMenuItem5_Click(object sender, EventArgs e) printPreviewDialog1.Document = printDocument1;printPreviewDialog1.ShowDialog(); private void printMenuItem_Click(object sender, EventArg

36、s e) printDialog1.Document=printDocument1;if(printDialog1.ShowDialog()=DialogResult.OK)printDocument1.Print(); private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) string s = contentTextBox.Text;e.Graphics.DrawRectangle(Pens.Black, e.PageSettings.Margins

37、.Left, e.PageSettings.Margins.Top, e.MarginBounds.Width, e.MarginBounds.Height);e.Graphics.DrawString(s, contentTextBox.Font, Brushes.Black, e.PageSettings.Margins.Left + 5, e.PageSettings.Margins.Top + 5); ,多页打印:,http:/ lineReader = null;/定义成员变量,打印时用来读取打印文本private void printDocument1_BeginPrint(obj

38、ect sender, System.Drawing.Printing.PrintEventArgs e) lineReader = new StringReader(contentTextBox.Text); private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) Graphics g = e.Graphics; /获得绘图对象float linesPerPage = 0; /页面的行号float yPosition = 0; /绘制字符串的纵向位置i

39、nt count = 0; /行计数器float leftMargin = e.MarginBounds.Left; /左边距float topMargin = e.MarginBounds.Top; /上边距string line = null; /行字符串Font printFont = contentTextBox.Font; /当前的打印字体SolidBrush myBrush = new SolidBrush(Color.Black);/刷子linesPerPage = e.MarginBounds.Height / printFont.GetHeight(g);/逐行的循环打印一页

40、 while(count linesPerPage ,多页打印:,http:/ void pageSetupMenuItem_Click(object sender, EventArgs e)pageSetupDialog1.Document = printDocument1;pageSetupDialog1.ShowDialog();private void previewMenuItem5_Click(object sender, EventArgs e)printPreviewDialog1.Document = printDocument1;printPreviewDialog1.Sh

41、owDialog();private void printMenuItem_Click(object sender, EventArgs e)printDialog1.Document = printDocument1;if(printDialog1.ShowDialog()=DialogResult.OK)printDocument1.Print();,打印预览异常,http:/ protected void FileMenuItem_PrintView_Click(object sender,EventArgs e) PrintPreviewDialog printPreviewDialo

42、g = new PrintPreviewDialog(); printPreviewDialog.Document = printDocument; try printPreviewDialog.ShowDialog(); catch(Exception excep) MessageBox.Show(excep.Message, “打印出错“, MessageBoxButtons.OK, MessageBoxIcon.Error); ,打印异常,http:/ void printMenuItem_Click(object sender, EventArgs e)printDialog1.Doc

43、ument = printDocument1;if (printDialog1.ShowDialog() = DialogResult.OK)tryprintDocument1.Print();catch (Exception ex)MessageBox.Show(ex.Message, “打印出错“, MessageBoxButtons.OK,MessageBoxIcon.Error);printDocument1.PrintController.OnEndPrint(printDocument1, new PrintEventArgs();,7.9.2 应用程序部署ClickOnce,发布:项目属性发布确定发布位置设置产品名及版本等信息立即发布 安装:登录安装 说明:全自动安装,添加桌面快捷方式,每次启动自动更新,课程设计-1:记事本,提示:参考课件+自学教材9.19.3 视频:http:/ 打印:http:/ 记事本:http:/

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 网络科技 > windows相关

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报