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

2019-01-12 10:28

根据本实例,读者可以实现以下功能。 根据所给图片制作相应的窗体界面。 用图片代替控件制作相应的窗体界面。 1.6 特殊形状的窗体

将界面以不规则的形状显示在桌面上,可以给用户一种新鲜的感觉。本节主要对窗体以特殊的形状进行显示,如非矩形窗体和字体形窗体等。 实例022 非矩形窗体 实例说明

大部分Windows窗体都是一个矩形区域,读者是否已经厌倦了这种中规中矩的矩形窗体?本例中的窗体是一个打破传统矩形的异型窗体,运行该例会看到一个非常可爱的窗体,单击【X】按钮就会使窗口关闭。实例效果如图1.22所示。 技术要点

以前,创建非矩形窗体是一个既费时又费人力的过程,其中涉及到 API 调用和大量的编程工作。在.NET 2.0框架中可以不调用API非常轻松的实现这一功能。只要重写窗体的OnPaint方法,在方法中重新绘制窗体,然后用透明色将窗体设置透明即可。

(1)Form.OnPaint方法:此成员重写Control.OnPaint。用来重新绘制窗体图像。其结构如下: protected override void OnPaint (PaintEventArgs e) 参数说明如下。

l PaintEventArgs:为Paint事件提供数据。 实现过程

(1)创建一个项目,将其命名为Ex01_22,默认窗体为Form1。

(2)在窗口中添加Label控件,并将BackColor属性设为透明,将text属性设为空。 (3)将窗体的TransparencyKey属性设为窗体的背景色。 (4)主要程序代码。

设置图片透明颜色的实现代码如下:

private void Form1_Load(object sender, EventArgs e) {

bit = new Bitmap(\ bit.MakeTransparent(Color.Blue);

}

重写基类方法,具体代码如下:

protected override void OnPaint(PaintEventArgs e) {

e.Graphics.DrawImage((Image)bit, new Point(0, 0));//将图片画出 } 举一反三

根据本实例,读者可以开发以下程序。 可以把窗体制做成各种卡通图形。 可以将窗体制做成各种几何图形。 可以将窗体制做成桌面小精灵。 实例023 建立字体形状窗体 实例说明

大家都见过不规则形状的窗体吧,那么如何制作一个文字形的窗体呢?文字形窗体一般应用在屏幕提示中,如收款机屏幕等。运行本例,效果如图1.23所示。 技术要点

以前,创建字体形窗体是一个既费时又费人力的过程,其中涉及到API调用和大量的编程工作。在.NET 2.0框架中可以不调用API非常轻松的实现这一功能。只要先将字体画在一幅图上,然后重写窗体的OnPaint方法(方法的详细内容可以参见实例022),在方法中用图重新绘制窗体,用背景色将窗体设置透明即可。 实现过程

(1)创建一个项目,将其命名为Ex01_23,默认窗体为Form1。 (2)主要程序代码。

namespace SpecialSharpWindows {

public partial class Form1 : Form {

Bitmap bit;

public Form1() {

InitializeComponent(); }

设置图片透明颜色的实现。代码如下:

private void Form1_Load(object sender, EventArgs e) {

bit = new Bitmap(\ bit.MakeTransparent(Color.Blue); }

重写基类方法的实现。代码如下:

protected override void OnPaint(PaintEventArgs e) {

e.Graphics.DrawImage((Image)bit, new Point(0, 0)); }

private void label1_Click(object sender, EventArgs e) {

this.Close(); } } } 举一反三

根据本实例,读者可以实现以下功能。 制作圆形的窗体。 制作锯齿状的窗体。

实例024 控件随窗体自动调整 实例说明

在软件开发中,随着窗体的大小变化,界面会和设计时出现较大的差异,控件和窗体的大小会不成比例非常不美观。本例中的控件是一个可以随窗体大小变化的控件。运行该例会看到一个控件随窗体大小变化的窗体。实例效果如图1.24所示。 技术要点

在.NET 2.0框架中可以非常轻松的实现这一功能。大多数控件都有Anthor属性,当在窗体上添加控件时设置Anthor属性即可。Anthor属性是个锚定属性,指定了控件距容器边缘的距离。当窗体大小变化时,控件距窗体边缘的距离不变,自然大小就随窗体自动调整。 实现过程

(1)创建一个项目,将其命名为Ex01_24,默认窗体为Form1。

(2)在窗体上添加MenuStrip控件、ToolStrip控件和Button控件。并设置Button的Anthor属性和Text属性。 举一反三

根据本实例,读者可以实现以下功能。 图片大小随着窗体大小变化的窗体。 菜单栏大小随着窗体大小变化的窗体。 实例025 带分隔栏的窗体 实例说明

在软件开发中,经常需要将界面分成几个部分,而且这几个部分又可以自由调整大小。运行本例,实例效果如图1.25所示。 技术要点

在.NET 2.0框架中可以非常轻松的实现这一功能,只要在窗体中加入SplitContainer控件即可。SplitContainer控件带有一个分隔栏,用来把窗体分成两部分。 实现过程

(1)创建一个项目,将其命名为Ex01_25,默认窗体为Form1。

(2)在Form1窗体上添加MenuStrip控件用来设计菜单栏,添加ToolStrip控件用来设计工具栏,添加SplitContainer控件用来设计分隔栏。 举一反三

根据本实例,读者可以实现以下功能。 分成3部分的窗体。 分成4部分的窗体。

实例026 随机更换主界面背景 实例说明

如果开发的软件用户使用频率非常高,可以为程序设计随机更换背景的程序。这样不但可以使用户心情愉快,也增加了软件的人性化设计。下面的界面就是一个随机更换主界面的例子,效果如图1.26所示。 技术要点

随机更换主界面背景使用了Random类和ImageList控件。首先为ImageList控件添加一组图片,然后实例化一个Random类,再用Next()方法产生一个随机数以决定将哪个图片设为背景。 Random.Next()方法用来返回一个小于所指定最大值的非负随机数。其结构如下: public virtual int Next (int maxValue) 参数说明如下。

l maxValue:要生成的随机数的上界(随机数不能取该上界值)。maxValue必须大于或等于零。

l 返回值:大于或等于零且小于maxValue的32位带符号整数,即返回的值范围包括零但不包括maxValue。 实现过程

(1)创建一个项目,将其命名为Ex01_26,默认窗体为Form1。

(2)在Form1窗体上添加ImageList控件,并为ImageList控件添加图片。 (3)主要程序代码。

private void Form1_Load(object sender, EventArgs e) {

Random rdn = new Random();

int i = rdn.Next(imageList1.Images.Count);//产生一个随机数 this.BackgroundImage = imageList1.Images[i]; } 举一反三

根据本实例,读者可以开发以下程序。 每天更换主程序背景的主界面。

随机更换菜单栏、工具栏图标的主程序。


非常经典C#案例培训资料(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:餐饮服务食品安全监督管理办法(自2010年5月1日起施行)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: