非常经典C#案例培训资料.docx

上传人:b****7 文档编号:10574605 上传时间:2023-02-21 格式:DOCX 页数:18 大小:30.32KB
下载 相关 举报
非常经典C#案例培训资料.docx_第1页
第1页 / 共18页
非常经典C#案例培训资料.docx_第2页
第2页 / 共18页
非常经典C#案例培训资料.docx_第3页
第3页 / 共18页
非常经典C#案例培训资料.docx_第4页
第4页 / 共18页
非常经典C#案例培训资料.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

非常经典C#案例培训资料.docx

《非常经典C#案例培训资料.docx》由会员分享,可在线阅读,更多相关《非常经典C#案例培训资料.docx(18页珍藏版)》请在冰豆网上搜索。

非常经典C#案例培训资料.docx

非常经典C#案例培训资料

非常经典C#案例培训资料

      窗体与界面设计  菜单应用实例  菜单是程序开发中经常使用的界面元素,合理利用菜单不但可以使用户非常方便的操作程序的功能,更能使效率提高,适应人性化的潮流。

下面通过几个应用实例,介绍菜单设计的方法和技术。

实例001带历史信息的菜单实例说明  在开发图纸管理软件时,要求在菜单上记录用户最近打开的档案或图纸,以方便下次使用。

如图所示,单击“文件”菜单下的“打开文件”子菜单,打开需要查阅的图纸。

下次运行该软件时,上次打开的文件名记录到“文件”菜单的历史菜单中,选择该菜单,即可打开相应的图纸文件。

技术要点  要实现保存最近打开的文件,可以将在菜单中最近打开文件的文件名和路径保存到事先建立的*.ini文件中,系统启动时读取*.ini中的数据建立数组菜单,即可实现显示历史菜单的功能。

注意:

要建立一个带历史信息的菜单,必须首先添加一个MenuStrip菜单控件,并将主窗体的IsMdiContainer属性设为True。

实现过程  创建一个项目,将其命名为Ex01_01,默认窗体为Form1。

  从工具箱中向Form1窗体添加MenuStrip控件,同时向窗体添加OpenFileDialog控件。

创建一个“文件”主菜单,在其下面创建打开、关闭所有、退出等菜单选项。

主要程序代码。

  将打开文件路径写入INI文件的实现代码如下:

  privatevoid打开ToolStripMenuItem_Click(objectsender,EventArgse)  {  =\  ();  StreamWriters=newStreamWriter(address+\  ();//写入INI文件  ();  ();  ShowWindows();  }  读取INI文件并将信息加入菜单的实现代码如下:

  privatevoidForm1_Load(objectsender,EventArgse)  {  StreamReadersr=newStreamReader(address+\  inti=this.文件;  while(()>=0)//读取INI文件  {    ToolStripMenuItemmenuitem=newToolStripMenuItem(());  this.文件(i,menuitem);  i++;    +=newEventHandler(menuitem_Click);  }  ();  }  自定义方法ShowWindows()用来加载背景图片并显示窗体,实现代码如下:

  publicvoidShowWindows(stringfileName)  {  Imagep=(fileName);  Formf=newForm();  =this;  =p;  ();  }举一反三  根据本实例,读者可以开发以下程序。

  记录用户操作菜单日志的程序。

在用户单击菜单时,把用户、菜单命令和菜单对应功能写入保存菜单日志的INI文件。

如果需要查看日志,只需打开INI文件。

通过数据库保存菜单历史信息的程序。

  菜单使用频率的程序。

把用户使用菜单的数据信息保存到数据库中,然后统计用户使用菜单的频率,并根据此频率调整菜单的显示顺序。

实例002菜单动态合并实例说明  在程序中经常使用弹出菜单,并且一个窗体中可以存在多个弹出菜单。

开发过MDI窗体的读者可能都知道,当MDI子窗体最大化时,子窗体和主窗体的菜单能够自动的合并。

这是如何实现的呢?

本例实现了将两个弹出菜单动态的合并成一个弹出菜单的功能。

实例效果如图所示。

技术要点  C#中已经将弹出菜单封装为ContextMenuStrip控件,利用该控件中的Items对象可以操作菜单中的菜单项。

该对象是ToolStripMenuItem类型,使用()方法可以向弹出菜单中添加菜单项,该方法原型如下。

publicvoidAddRange(  ToolStripItemtoolStripItems)  参数说明如下。

  l  toolStripItems:

控件的数组。

实现过程  创建一个项目,将其命名为Ex01_02,默认窗体为Form1。

  从工具箱中向Form1窗体添加一个MenuStrip控件用来设计菜单;同时向窗体添加ContextMenuStrip控件用来设计右键菜单;选中MenuStrip控件创建一个“打开子窗体”主菜单,然后选中ContextMenuStrip控件为其添加子项。

  为程序添加一个窗体,默认名为Form2,同时向窗体添加ContextMenuStrip控件用来设计右键菜单,然后选中ContextMenuStrip控件为其添加子项。

主要程序代码。

  privatevoid打开自窗体ToolStripMenuItem_Click(objectsender,EventArgse)  {  Form2f=newForm2();  =this;  ();//显示子窗体  +=newEventHandler(f_Resize);  }  voidf_Resize(objectsender,EventArgse)  {  Form2f=(Form2)sender;  ToolStripMenuItemitem=newToolStripMenuItem();  for(inti=0;i    ([i]);  }  (new{  item});  }举一反三  根据本实例,读者可以实现以下功能。

让右键菜单在子窗体中显示。

  让右键菜单在主窗体和子窗体中同时显示。

实例003像开始菜单一样漂亮的菜单实例说明  Windows的开始菜单非常的独特,在菜单的旁边有一条竖着的彩条,彩条中还写着文字。

这种独特的菜单能够使程序的界面看起来更加的漂亮。

本例中就实现了这种菜单,运行本例弹出“打开菜单”时,就会看到菜单的左边有一个紫色的彩条。

实例效果如图所示。

技术要点  在C#中,MenuStrip控件中的子项ToolStripMenuItem已经包括了左侧的彩条,实现像开始菜单一样的菜单非常容易,不像在其他计算机语言的开发环境中,需要调用API才可以实现。

如果想改变左侧竖着的彩条,只要给对应的菜单项设置相应的图片即可。

  注意:

如果要在左侧彩条显示文字,只要在对应的图片上加入文字即可。

实现过程  创建一个项目,将其命名为Ex01_03,默认窗体为Form1。

从工具箱中向Form1窗体添加MenuStrip控件。

为MenuStrip控件添加相应的子项。

为子项添加相应的图片。

举一反三  根据本实例,读者可以实现以下功能。

  将菜单元设置成不同的格式。

在菜单左侧播放动画。

实例004任务栏托盘菜单实例说明  有一些软件通常只是在后台运行,这些进程大部分时间不显示用户界面。

可通过单击任务栏状态通知区域的图标来访问的病毒防护程序就是一个示例。

Windows窗体中的NotifyIcon控件通常用于显示在后台运行的进程的图标,本实例利用该控件制作了一个任务栏托盘菜单。

实例效果如图所示。

技术要点  要实现程序启动时出现在系统托盘中。

必须要为窗体添加NotifyIcon控件和ContextMenuStrip控件。

  注意:

必须为NotifyIcon控件的Icon属性设置图标。

实现过程  创建一个项目,将其命名为Ex01_04,默认窗体为Form1。

  向Form1窗体添加NotifyIcon控件和ContextMenuStrip控件,并为ContextMenuStrip控件添加子项。

  选择NotifyIcon控件,在其属性窗口中将ContextMenuStrip属性设置为添加到窗体上的ContextMenuStrip控件,并为Icon属性设置图片。

举一反三  根据本实例,读者可以开发以下程序。

  程序启动时不出现界面,直接出现在系统托盘中运行的后台程序。

  

      程序启动时不出现在任务栏中。

实例005可以拉伸的菜单界面实例说明  如果管理程序功能菜单非常多,而用户只使用一些常用菜单,这时,可以将主菜单项下的不常用菜单隐藏起来。

此种显示方式类似于对菜单进行拉伸。

使用时,只需单击展开菜单,即可显示相应菜单功能。

运行本例,效果如图所示。

技术要点  要实现可以拉伸的菜单,关键是要使用一个开关变量,同时调用ShowDropDown()方法,显示操作后的结果。

下面详细介绍一下该方法。

  ShowDropDown()方法用来显示与此ToolStripDropDownItem关联的ToolStripDropDownItem控件。

其语法结构如下:

publicvoidShowDropDown()  另外,用ShowDropDown()方法还可以显示已DropDown属性设置的下拉控件。

注意:

必须设置开关变量的初值。

实现过程  创建一个项目,将其命名为Ex01_05,默认窗体为Form1。

  从工具箱中向Form1窗体添加MenuStrip控件,选中MenuStrip控件为其添加子项。

双击“展开(关闭)子项”为其双击事件添加处理代码。

主要程序代码。

  privatevoidForm1_Load(objectsender,EventArgse)  {  //初始设置下面的菜单隐藏  this.设置密码=false;  this.添加用户=false;  this.忘记密码=false;  this.修改密码=false;  this.员工录入=false;  }  privatevoidtoolStripMenuItem1_Click(objectsender,EventArgse)  {  switch(i)  {    case1:

    this.设置密码=false;  this.添加用户=false;  this.忘记密码=false;  this.修改密码=false;  this.员工录入=false;  i=2;    this.操作();  break;  case2:

    this.设置密码=true;  this.添加用户=true;  this.忘记密码=true;  this.修改密码=true;  this.员工录入=true;  i=1;    this.操作();  break;  }  }举一反三  根据本实例,读者可以开发以下功能。

制作显示\\隐藏工具栏。

  合并菜单栏。

实例006菜级联菜单实例说明  如果管理程序功能菜单非常多,一些功能中又包括许多子功能,这时可以使用级联菜单来组织系统的各个功能。

实例运行结果如图所示。

  图级联菜单  技术要点  制作级联菜单需要使用MenuStrip控件。

  注意:

在使用级联菜单时最好不要超过5层,否则用户在使用时会很不方便。

实现过程  创建一个项目,将其命名为Ex01_06,默认窗体为Form1。

  在Form1窗体添加MenuStrip控件,选中MenuStrip控件为其添加子项和级联子项。

举一反三  根据本实例,读者可以开发以下功能。

大型系统的功能导航。

在窗体四周再增加菜单栏。

  工具栏设计  在菜单栏中将常用的菜单命令以工具栏按钮的形式显示,并作为快速访问方式。

工具栏位于菜单栏的下方,许多命令按钮组成,每个命令按钮上都有一个形象的小图标,以标识命令按钮的功能。

于工具栏这种直观易用的特点,使其已成为Windows应用程序的标准界面。

实例007带带背景的工具栏实例说明  工具栏是窗体的组成部分之一,工具栏中的按钮可以设定完成一些较为常用或重要的功能,本例中设计了一个工具栏,并且为该工具栏作了一些修饰,使工具栏带有背景。

背景图案可以透过按钮显示,效果如图所示。

技术要点  工具栏中的背景是一幅图片,在运行时应该将该图片绘制到工具栏上,在.NET中,只需将工具栏按钮的BackGroundImage的属性设置为对应的图片即可。

实现过程  创建一个项目,将其命名为Ex01_07,默认窗体为Form1。

  从工具箱中为Form1窗体添加ToolStrip控件,并为工具栏添加相应的按钮。

  为工具栏的按钮设置相应的BackGroundImage属性,相应的的图片就会变成按钮的背景。

举一反三  根据本实例,读者可以开发以下功能。

制作一个带动画效果的工具栏。

制作一个自定义样式的工具栏。

实例008带浮动工具栏实例说明  通常情况下,窗体显示在屏幕的中心。

对于使用频率非常高的软件,通常放在屏幕上端以浮动工具栏形式显示。

下面通过实例介绍浮动工具栏的设计方法。

运行程序,程序可以停在屏幕的任何位置,当窗体失去焦点后,窗体将自动隐藏。

效果如图所示。

技术要点  窗体是否要隐藏,重要的是要判断在操作中,通过窗体的Focused属性,是否可以确定窗体有焦点。

在窗体有焦点时,该窗体正在被操作,这时需要完全显示在屏幕当中,如果窗体没有焦点,通过设置窗体到屏幕的高度,来确定窗体的隐藏部分。

下面详细介绍一下Focused属性。

Focused属性用来获取一个值,该值指示控件是否有输入焦点。

其语法结构如下:

publicvirtualboolFocused{get;}  l  属性值:

如果控件有焦点,则为True;否则为False。

实现过程  创建一个项目,将其命名为Ex01_08,默认窗体为Form1。

  从工具箱中为Form1窗体添加Panel控件,并为Panel控件添加相应的背景图片。

在Panel上添加两个Label控件,并将其Text属性设置为“打开”和“关闭”,同时把两个Label控件的背景颜色设置为透明。

主要程序代码。

  privatevoidtimer1_Tick(objectsender,EventArgse)  {  if(==false)  {    =-30;  }  }  privatevoidlabel2_Click(objectsender,EventArgse)  {  ();  }  privatevoidpanel1_MouseClick(objectsender,MouseEventArgse)  {  =60;  }举一反三  根据本实例,读者可以开发以下功能。

制作一个带动画效果的工具栏。

制作一个飘动的工具栏。

实例009在带下拉菜单的工具栏实例说明  工具栏是窗体的组成部分之一,工具栏中的按钮可以完成一些较为常用或重要的功能,本例中设计了一个工具栏,使工具栏带有下拉菜单,效果如图所示。

技术要点  带下拉菜单的工具栏在其他计算机语言中实现比较复杂,但在.NET中已经提供了这个功能,只需将工具栏按钮的类型设置为DropDownButton即可。

实现过程  创建一个项目,将其命名为Ex01_09,默认窗体为Form1。

  

      从工具箱中为窗体添加ToolStrip控件,并为工具栏添加相应的按钮,在按钮的下拉选项中选择DropDownButton类型。

  为工具栏DropDownButton类型的按钮设置相应的下拉菜单,就可以轻松实现带下拉菜单的工具栏。

举一反三  根据本实例,读者可以开发以下功能。

制作一个带右键菜单的工具栏。

制作一个带复选框的工具栏。

实例010在具有提示功能的工具栏实例说明  在文档\\视图结构的应用程序中,默认情况下,当鼠标在工具栏按钮上停留片刻,会出现一个工具提示条。

本例实现了一个具有提示功能的工具栏,效果如图所示。

技术要点  具有提示功能的工具栏在其他计算机语言中实现也许比较复杂,但在.NET中已经提供了这个功能。

只需将工具栏按钮的ToolTipText设置为要提示的内容即可。

下面详细介绍一下该属性。

ToolTipText属性用来获取或设置作为控件的ToolTip显示的文本。

其语法结构如下:

publicstringToolTipText{get;set;}  l  属性值:

一个表示工具提示文本的字符串。

实现过程  创建一个项目,将其命名为Ex01_10,默认窗体为Form1。

  从工具箱中为Form1窗体添加ToolStrip控件用来设计工具栏,并为工具栏添加相应的按钮。

  为相应按钮的ToolTipTile属性设置提示内容,就可以轻松实现具有提示功能的工具栏。

举一反三  根据本实例,读者可以开发以下功能。

具有提示功能的各种控件。

具有提示功能的窗体。

状态栏设计  状态栏是用来显示当前程序状态的。

状态栏可以分为多个面板,用来显示不同状态下的内容,本节主要介绍了状态栏的用法以及如何在状态栏中添加控件。

实例011在状态栏中显示检查框实例说明  在设计程序界面时,为了规范界面,可以将一些控件放置在状态栏中,这样既能起到控制程序的作用,又能使界面和谐、美观。

运行程序,在窗体的状态栏中加入了显示时间检查框。

效果如图所示。

技术要点  在状态栏中添加检查框比较容易,只需先将状态栏加入窗体,然后将检查框从工具箱中拖入状态拦即可。

实现过程  创建一个项目,将其命名为Ex01_11,默认窗体为Form1。

  从工具箱中为Form1窗体添加StatusStrip控件,并从工具箱中为状态栏添加CheckBox控件。

  主要程序代码。

  privatevoidcheckBox2_CheckedChanged(objectsender,EventArgse)  {  if()  {    [1].Text=\日期:

\  }  else  {    [1].Text=\  }  }举一反三  根据本实例,读者可以开发以下功能。

运行时设置控件的位置。

  动态控制控件的显示。

实例012带进度条的状态栏实例说明  上网浏览网页的读者都用过IE浏览器,读者是否注意到该浏览器的状态栏,在打开网页的过程中,浏览器下边的状态栏中有一个进度条显示当前网页的载入进度,这样的状态栏使界面显得更加丰富多彩,并且非常实用。

本例将设计一个带进度条的状态栏,并且在程序运行当中进度条可以显示其进度,该实例运行结果如图所示。

技术要点  带进度条的状态栏在别的开发环境下实现相对比较复杂,但在.NET中已经提供了这个功能,只需将状态栏的按钮类型设置为ProgressBar即可。

通过设置ProgressBar的Step属性指定一个特定值用以逐次递增Value属性的值,然后调用PerformStep方法来使该值递增,就可以实现带进度条的状态栏。

实现过程  创建一个项目,将其命名为Ex01_12,默认窗体为Form1。

  从工具箱中为Form1窗体添加StatusStrip控件,并为状态栏添加相应的按钮,在按钮的下拉选项中选择ProgressBar类型。

  设置ToolStripProgressBar1的Value属性、Maximum属性和Step属性。

主要程序代码。

  privatevoidForm1_Load(objectsender,EventArgse)  {  while(    ();  }  }举一反三  根据本实例,读者可以开发以下功能。

在状态栏中显示时间。

改变进度条的颜色。

  实例013状态栏中加入图标实例说明  状态栏已经成为主界面必不可少的部分,状态栏一般用于显示程序状态、当前日期等,在状态栏中添加一张图片会使程序的主界面更有特色。

运行本例,效果如图所示。

技术要点  状态栏中加入图标在.NET中实现非常容易,只要将对应状态栏面板的Image属性设置为要显示的图片即可。

实现过程  创建一个项目,将其命名为Ex01_13,默认窗体为Form1。

  从工具箱中为Form1窗体添加StatusStrip控件,并为状态栏添加相应的按钮,设置添加的按钮的Image属性为要显示的图片。

举一反三  根据本实例,读者可以实现以下功能。

将其他控件放置在状态栏中,如进度条。

将其他控件放置在状态栏中,如复选框。

导航菜单界面  对于一些应用工具软件,界面不但要求人性化、漂亮,还要突出界面功能、使用方便,这样才能吸引用户使用。

本节主要介绍了常用的几种菜单界面。

实例014OutLook界面实例说明  程序主界面包括菜单栏、工具栏、状态栏和树状视图。

OutLook界面美观、友好,是一个很实用的程序主界面,并且菜单栏和工具栏是可移动的。

运行本例效果如图所示。

  图OutLook界面  技术要点  一般程序的菜单栏和工具栏是不可移动的,但是只要将MenuStrip和ToolStrip控件的AllowItemRecorder属性设为True就可以移动。

在本例中使用MenuStrip控件制作菜单栏,使用ToolStrip制作工具栏,使用StatusStrip控件制作状态栏。

下面详细介绍一下这几个控件的属性。

  1.ToolStrip.AllowItemReorder属性  获取或设置一个值,该值指示是否ToolStrip类私自处理拖放和项重新排序。

其结构如下:

publicboolAllowItemReorder{get;set;}  l  属性值:

如果让ToolStrip类自动处理拖放和项重新排序,为True;否则为False。

默认值为False。

  2.MenuStrip.AllowItemReorder属性  获取或设置一个值,该值指示是否ToolStrip类私自处理拖放和项重新排序。

其结构如下:

publicboolAllowItemReorder{get;set;}  l  属性值:

如果让MenuStrip类自动处理拖放和项重新排序,为True;否则为False。

默认值为False。

  3.属性  获取或设置是否在ToolStripItem上显示文本和图像。

  publicvirtualToolStripItemDisplayStyleDisplayStyle{get;set;}  l  属性值:

ToolStripItemDisplayStyle值之一。

默认为ImageAndText。

注意:

在移动菜单栏和工具栏时,需要按住“Alt”键,同时用鼠标进行拖动。

实现过程  创建一个项目,将其命名为Ex01_14,默认窗体为Form1。

  在Form1窗体上添加MenuStrip控件,用来设计主菜单;添加ToolStrip控件,用来设计工具栏;添加StatusStrip控件,用来设计状态栏;添加ImageList控件和TreeVew控件,用来设计树结构。

  分别为MenuStrip控件、ToolStrip控件、ImageList控件和TreeVew控件添加子项,将MenuStrip控件和ToolStrip控件的AllowItemRecorder属性设为True,并将ToolStrip控件的每个子项的DisplayStyle属性设置为“ImageAndText”。

下面详细介绍这几个属性。

举一反三  根据本实例,读者可以实现以下功能。

制作一个系统菜单。

制作一个导航界面。

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

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1