创建特定形状的窗体课件.ppt

上传人(卖家):晟晟文业 文档编号:5013714 上传时间:2023-02-02 格式:PPT 页数:46 大小:607.50KB
下载 相关 举报
创建特定形状的窗体课件.ppt_第1页
第1页 / 共46页
创建特定形状的窗体课件.ppt_第2页
第2页 / 共46页
创建特定形状的窗体课件.ppt_第3页
第3页 / 共46页
创建特定形状的窗体课件.ppt_第4页
第4页 / 共46页
创建特定形状的窗体课件.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

1、创建特定形状的窗体创建特定形状的窗体DEMO12添加窗体的添加窗体的Paint事件处理事件处理/GraphicsPath表示一系列相互连接的直线和曲线表示一系列相互连接的直线和曲线 System.Drawing.Drawing2D.GraphicsPath shape=new System.Drawing.Drawing2D.GraphicsPath();shape.AddEllipse(0,0,this.Width,this.Height);/Control.Region 属性获取或设置与控件关联的窗口区域。属性获取或设置与控件关联的窗口区域。this.Region=new System.D

2、rawing.Region(shape);创建不规则窗体创建不规则窗体DEMO24步骤步骤1(1)创建创建Windows 应用程序项目,将其属性设应用程序项目,将其属性设置为移除标题栏并使用位图作为窗体背景。置为移除标题栏并使用位图作为窗体背景。BackgroundImage属性属性:位图位图FormBorderStyle属性属性:NoneTransparencyKey属性属性:设为要隐藏的颜色设为要隐藏的颜色5步骤步骤2(2)输入重新创建标题栏所提供功能的代码,输入重新创建标题栏所提供功能的代码,例如移动和关闭窗体。例如移动和关闭窗体。为窗体添加数据成员为窗体添加数据成员,记录鼠标状态记录鼠

3、标状态:private Point mouseOffset;private bool isMouseDown=false;6步骤步骤3(3)添加窗体的添加窗体的MouseDown事件处理事件处理:private void Form1_MouseDown(object sender,MouseEventArgs e)int xOffset;int yOffset;if(e.Button=MouseButtons.Left)/计算和窗体左上角的偏离量计算和窗体左上角的偏离量 xOffset=-e.X-SystemInformation.FrameBorderSize.Width;yOffset=-

4、e.Y-SystemInformation.CaptionHeight-SystemInformation.FrameBorderSize.Height;mouseOffset=new Point(xOffset,yOffset);isMouseDown=true;7添加窗体的添加窗体的MouseMove事件处理事件处理private void Form1_MouseMove(object sender,MouseEventArgs e)if(isMouseDown)/获取鼠标光标的位置(以屏幕坐标表示)。获取鼠标光标的位置(以屏幕坐标表示)。Point mousePos=Control.Mo

5、usePosition;/将此将此 Point 平移指定的量。平移指定的量。mousePos.Offset(mouseOffset.X,mouseOffset.Y);Location=mousePos;8添加窗体的添加窗体的MouseUp事件处理事件处理private void Form1_MouseUp(object sender,MouseEventArgs e)if(e.Button=MouseButtons.Left)isMouseDown=false;MaskedTextBoxMaskedTextBox控件控件DEMO310 MaskedTextBoxMaskedTextBox控件控

6、件(P51)(P51)MaskedTextBoxMaskedTextBox控件,也叫掩码文本框。它的主要作用是控件,也叫掩码文本框。它的主要作用是控制输入文本的格式。如果输入的内容不满足规定的格式,则控制输入文本的格式。如果输入的内容不满足规定的格式,则控件不会接收该输入。控件不会接收该输入。如下图是从工具箱向窗体拖动该控件如下图是从工具箱向窗体拖动该控件的图示。的图示。111 1、常用的基本属性、常用的基本属性(1 1)InsertKeyModeInsertKeyMode 属性:指示向掩码文本框输入字符时的属性:指示向掩码文本框输入字符时的输入模式,其属性值有:输入模式,其属性值有:Defa

7、ultDefault、InsertInsert和和Overwrite3Overwrite3种。种。当属性值为当属性值为DefaultDefault时,表示输入模式由当时键盘的插入时,表示输入模式由当时键盘的插入/改写改写状态决定,如果输入时键盘处于改写模式,则会改写输入处的状态决定,如果输入时键盘处于改写模式,则会改写输入处的字符,否则为插入字符。当属性值为字符,否则为插入字符。当属性值为InsertInsert时,即使键盘的时,即使键盘的InsIns键被按下,也不会以改写方式输入字符。当属性值为键被按下,也不会以改写方式输入字符。当属性值为OverwriteOverwrite时,则任何时候都

8、是以改写方式输入字符。时,则任何时候都是以改写方式输入字符。12(2 2)PromptCharPromptChar 属性:指定作为占位符的字符,属性:指定作为占位符的字符,用于指示用户需要输入的字符长度,默认的占位符为用于指示用户需要输入的字符长度,默认的占位符为下划线下划线“_”_”,需要修改时可以直接在属性后的空白,需要修改时可以直接在属性后的空白处输入指定字符。处输入指定字符。13(3 3)MaskMask属性:设置当前掩码文本框输入字符属性:设置当前掩码文本框输入字符的格式。单击的格式。单击MaskMask属性后的属性后的按钮,按钮,14弹出如图所示的窗口,其中是一些设置好的时间、弹出

9、如图所示的窗口,其中是一些设置好的时间、电话号码的格式,若这些格式都不能满足设计要求,电话号码的格式,若这些格式都不能满足设计要求,也可以选择自定义格式,或者在也可以选择自定义格式,或者在MaskMask属性后的空属性后的空白处直接输入自定义格式。白处直接输入自定义格式。1516 自定义输入格式时,可以使用掩码和分自定义输入格式时,可以使用掩码和分隔符两类符号。掩码用于限制用户可输入的隔符两类符号。掩码用于限制用户可输入的符号类型,程序运行时掩码以占位符显示;符号类型,程序运行时掩码以占位符显示;而分隔符可作为输入字符之间的关联符,分而分隔符可作为输入字符之间的关联符,分隔符显示在掩码文本框中

10、,且不可修改。表隔符显示在掩码文本框中,且不可修改。表5-35-3列出了常用掩码和分隔符的含义。列出了常用掩码和分隔符的含义。17表表5-3 5-3 常用的掩码和分隔符常用的掩码和分隔符符号符号含义含义掩码掩码0 0数字数字“0”“9”0”“9”9 9数字数字“0”“9”0”“9”、空格(、空格(SpaceSpace)#数字数字“0”“9”0”“9”、空格(、空格(SpaceSpace)、)、“+”+”、“-”-”L L数字数字“a”“za”“z”、“A”“Z”A”“Z”&键盘可输入字符键盘可输入字符A A、a a字母与数字字母与数字 强制将其后输入的字母转换为大写强制将其后输入的字母转换为大

11、写分隔符分隔符.小数分隔符,即小数点小数分隔符,即小数点-连接分隔符连接分隔符,数字分隔符数字分隔符:时间分隔符时间分隔符/日期分隔符日期分隔符$货币符号货币符号18掩码不能保证用户输入一定会表示给定类型的有效掩码不能保证用户输入一定会表示给定类型的有效值,例如,输入的年龄值可能为值,例如,输入的年龄值可能为-9。通过将值的。通过将值的类型的实例赋给类型的实例赋给 ValidatingType 属性,可以确属性,可以确保用户输入表示一个有效值。通过监视保用户输入表示一个有效值。通过监视 TypeValidationCompleted 事件,可以检测事件,可以检测当当 MaskedTextBox

12、 包含无效值时,用户是否包含无效值时,用户是否将焦点从该控件移开。如果键入验证成功,可以通将焦点从该控件移开。如果键入验证成功,可以通过过 TypeValidationEventArgs 参数的参数的 ReturnValue 属性使用表示该值的对象。属性使用表示该值的对象。19(4 4)TextMaskFormatTextMaskFormat 属性:表示由掩码文本框属性:表示由掩码文本框的的TextText属性得到的字符串中是否包含占位符、分属性得到的字符串中是否包含占位符、分隔符的内容。该属性共有隔符的内容。该属性共有4 4个选项:个选项:ExcludePromptAndLiteralsEx

13、cludePromptAndLiterals表示占位符和分隔符均表示占位符和分隔符均不包含;不包含;IncludePromptIncludePrompt表示仅包含占位符;表示仅包含占位符;IncludeLiteralsIncludeLiterals表示仅包含分隔符;表示仅包含分隔符;IncludePromptAndLiteralsIncludePromptAndLiterals表示占位符和分隔符均表示占位符和分隔符均包含。包含。20(5 5)HidePromptOnLeaveHidePromptOnLeave属性:指示若当前控件未处属性:指示若当前控件未处于活动状态时,是否显示占位苻,若属性值

14、为于活动状态时,是否显示占位苻,若属性值为truetrue时,时,表示当控件不是活动状态,隐藏占位苻;若属性值为表示当控件不是活动状态,隐藏占位苻;若属性值为falsefalse时,即使控件不是活动状态,仍然显示占位符。时,即使控件不是活动状态,仍然显示占位符。212 2、常用的基本事件常用的基本事件 MaskInputRejectedMaskInputRejected事件:当输入字符不符合掩码事件:当输入字符不符合掩码要求时触发的操作。要求时触发的操作。例例1 1 简单的用户信息登录界面示例。简单的用户信息登录界面示例。(1 1)新建一个名为新建一个名为MaskedTextBoxExampl

15、eMaskedTextBoxExample的的WindowsWindows应用程序项目,在应用程序项目,在 解决方案资源管理器解决方案资源管理器 中中Form1.csForm1.cs重命名为重命名为FormMaskedTextBox.csFormMaskedTextBox.cs。如下各。如下各图所示。图所示。22向向FormForm窗体中添加窗体中添加5 5个个MaskedTextBoxMaskedTextBox控件、控件、1 1个个ButtonButton控件和控件和7 7个个LabelLabel控控件,窗体中各控件的属性、布局及显示效果如图所示。件,窗体中各控件的属性、布局及显示效果如图所

16、示。23在在FormMaskedTextBoxFormMaskedTextBox类中直接编写类中直接编写MyMaskInputRejectedMyMaskInputRejected事件和事件和MyMaskInputResetMyMaskInputReset事件事件。具体代码为:具体代码为:/若输入不符合要求,则以红色字体显示输入信息若输入不符合要求,则以红色字体显示输入信息 private void MyMaskInputRejected(object sender,MaskInputRejectedEventArgs e)(MaskedTextBox)sender).ForeColor=Co

17、lor.Red;/重新输入时,以改写方式输入,并恢复正常的字体颜色重新输入时,以改写方式输入,并恢复正常的字体颜色 private void MyMaskInputReset(object sender,KeyEventArgs e)(MaskedTextBox)sender).InsertKeyMode=InsertKeyMode.Overwrite;(MaskedTextBox)sender).ForeColor=Color.FromName(Window Text);24 为所有的为所有的MaskedTextBox的的MaskInputRejected事件指定事件处理函事件指定事件处理函

18、数数:MyMaskInputRejected 为所有的为所有的MaskedTextBox的的KeyDown事事件指定事件处理函数件指定事件处理函数:MyMaskInputReset25添加添加maskedTextBoxBirthdaymaskedTextBoxBirthday的的TypeValidationCompletedTypeValidationCompleted事件代码。事件代码。将该事件代码补充完整如下:将该事件代码补充完整如下:private void maskedTextBoxBirthday_TypeValidationCompleted(object sender,TypeV

19、alidationEventArgs e)if(!e.IsValidInput)MessageBox.Show(您输入的日期不正确!您输入的日期不正确!);(MaskedTextBox)sender).Focus();(MaskedTextBox)sender).InsertKeyMode=InsertKeyMode.Overwrite;RadioButton实例实例DEMO427添加添加RadioButton的的CheckedChanged事件处理事件处理private void rdo_CheckedChanged(object sender,EventArgs e)RadioButton

20、 btn=(RadioButton)sender;if(checkBox1.Checked)switch(btn.Text)case 红色红色:pictureBox1.BackColor=Color.Red;break;case 蓝色蓝色:pictureBox1.BackColor=Color.Blue;break;case 黑色黑色:.28添加添加CheckBox的的CheckedChanged事件处理事件处理private void checkBox1_CheckedChanged(object sender,EventArgs e)if(checkBox1.Checked)foreach

21、(Control ctl in this.groupBox1.Controls)if(ctl is RadioButton)RadioButton rdo=(RadioButton)ctl;if(rdo.Checked)this.rdo_CheckedChanged(rdo,null);break;else pictureBox1.BackColor=this.BackColor;VScrollBar实例实例DEMO430提示提示(1)设置设置VScrollBar的的LargeChange值为值为1;31添加添加VSCrollBar的的ValueChanged事件处理事件处理private v

22、oid vScrollBar1_ValueChanged(object sender,EventArgs e)int r,g,b;r=vScrRed.Value;g=vScrGreen.Value;b=vScrBlue.Value;Color c=Color.FromArgb(r,g,b);pictureBox1.BackColor=c;lblRed.Text =r.ToString();lblGreen.Text =g.ToString();lblBlue.Text =b.ToString();Invalidate(false);32添加添加CheckBox的的CheckedChanged事

23、件处理事件处理private void checkBox1_CheckedChanged(object sender,EventArgs e)if(checkBox1.Checked)foreach(Control ctl in this.groupBox1.Controls)if(ctl is RadioButton)RadioButton rdo=(RadioButton)ctl;if(rdo.Checked)this.rdo_CheckedChanged(rdo,null);break;else pictureBox1.BackColor=this.BackColor;资源管理器实例资源

24、管理器实例DEMO534提示提示(1)设置设置ListView的的View值为值为Details;(2)添加命名空间添加命名空间:using System.IO;/添加引用,以使用文件和目录类添加引用,以使用文件和目录类35初始化左面的初始化左面的TreeView显示显示public void RefreshTree()/Turn off visual updating and clear tree.DirectoryTreeView.BeginUpdate();DirectoryTreeView.Nodes.Clear();/Make disk drives the root nodes.s

25、tring astrDrives=Directory.GetLogicalDrives();foreach(string str in astrDrives)TreeNode tnDrive=new TreeNode(str,0,0);/ImageIndex=0;SelectedImageIndex=0DirectoryTreeView.Nodes.Add(tnDrive);AddDirectories(tnDrive);if(str=C:)DirectoryTreeView.SelectedNode=tnDrive;DirectoryTreeView.EndUpdate();36添加各个驱动

26、器节点添加各个驱动器节点void AddDirectories(TreeNode tn)tn.Nodes.Clear();string strPath=tn.FullPath;DirectoryInfo dirinfo=new DirectoryInfo(strPath);DirectoryInfo adirinfo;try adirinfo=dirinfo.GetDirectories();catch return;foreach(DirectoryInfo di in adirinfo)TreeNode tnDir=new TreeNode(di.Name,1,2);tn.Nodes.Ad

27、d(tnDir);37添加添加TreeView的的BeforeExpand响应事件,响应事件,即在节点打开前执行即在节点打开前执行private void DirectoryTreeView_BeforeExpand(object sender,System.Windows.Forms.TreeViewCancelEventArgs e)DirectoryTreeView.BeginUpdate();foreach(TreeNode tn in e.Node.Nodes)AddDirectories(tn);DirectoryTreeView.EndUpdate();38填充填充ListVie

28、w,显示文件信息,显示文件信息public void ShowFiles(string strDirectory)/Save directory name as field.this.strDirectory=strDirectory;FileListView.Items.Clear();DirectoryInfo dirinfo=new DirectoryInfo(strDirectory);FileInfo afileinfo;tryafileinfo=dirinfo.GetFiles();catchreturn;39foreach(FileInfo fi in afileinfo)/Cr

29、eate ListViewItem.ListViewItem lvi=new ListViewItem(fi.Name);/Assign ImageIndex based on filename extension.if(Path.GetExtension(fi.Name).ToUpper()=.EXE)lvi.ImageIndex=4;elselvi.ImageIndex=3;/Add file length and modified time sub-items.lvi.SubItems.Add(fi.Length.ToString(N0);/Add attribute subitem.s

30、tring strAttr=;if(fi.Attributes&FileAttributes.Archive)!=0)strAttr+=A;if(fi.Attributes&FileAttributes.Hidden)!=0)strAttr+=H;40if(fi.Attributes&FileAttributes.ReadOnly)!=0)strAttr+=R;if(fi.Attributes&FileAttributes.System)!=0)strAttr+=S;lvi.SubItems.Add(strAttr);lvi.SubItems.Add(fi.LastWriteTime.ToSt

31、ring();/Add completed ListViewItem to FileListView.FileListView.Items.Add(lvi);41添加添加TreeView的的BeforeExpand响应事件,响应事件,即在节点打开前执行即在节点打开前执行private void DirectoryTreeView_BeforeExpand(object sender,System.Windows.Forms.TreeViewCancelEventArgs e)DirectoryTreeView.BeginUpdate();foreach(TreeNode tn in e.Nod

32、e.Nodes)AddDirectories(tn);DirectoryTreeView.EndUpdate();42添加添加DirectoryTreeView的的AfterSelect响应事件,即在节点响应事件,即在节点被选择后执行被选择后执行private void DirectoryTreeView_AfterSelect(object sender,System.Windows.Forms.TreeViewEventArgs e)ShowFiles(e.Node.FullPath);后台线程实例后台线程实例DEMO644提示提示(1)添加控件添加控件BackgroundWorker;(

33、2)添加添加Bool flag=false;表示是否画图表示是否画图;(3)添加添加 Random random=new Random();用来生成随机画图时的坐标和颜色用来生成随机画图时的坐标和颜色;45添加添加BackgroundWorker的的DoWork响应响应事件事件 private void backgroundWorker1_DoWork(object sender,DoWorkEventArgs e)Point pt=new Point2;Graphics graphics=pictureBox1.CreateGraphics();Color c;while(flag)pt0=

34、new Point(random.Next(pictureBox1.Width),random.Next(pictureBox1.Height);pt1=new Point(random.Next(pictureBox1.Width),random.Next(pictureBox1.Height);c=Color.FromArgb(random.Next(255),random.Next(255),random.Next(255);graphics.DrawLine(new Pen(c,3),pt0,pt1);46添加添加Button的的Click响应事件响应事件 private void button1_Click(object sender,EventArgs e)this.flag=!this.flag;if(this.flag)button1.Text=停止停止;this.backgroundWorker1.RunWorkerAsync();while(this.backgroundWorker1.IsBusy)Application.DoEvents();else button1.Text=开始开始;

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(创建特定形状的窗体课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|