设计各种形状的窗体界面

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用设计各种形状的窗体界面一
文章来源:互联网
窗体是程序设计最常见,最普通,也是最容易受到程序员忽视的编程对象。

一般来说,在Visual Basic .Net针对窗体的编程是不需要人为介入的,因为可视化编程工具Visual Studio .Net已经按照窗体的缺省状态实现了。

但是在最近遇到的应用程序中。

我们发现越来越多的应用程序中使用到各种不同规则的窗体,这些不同规则的窗体给应用程序带来异常的情趣和不同平常的效果的同时,也促使使用者思考这样一个问题,如何创建这些窗体?在Visual Basic .Net中提供了一种简单、直接创建不规则窗体的方法,本文的主要内容就是探讨一下这些方法具体的实现过程。

下面就来详细介绍在Visual Basic .Net 中实现五种不同规格窗体的方法,即:椭圆形、扇形、圆形、环形和三角形。

掌握了这五种不同形状窗体的实现方法后,我想对于其他规则的窗体就不应该有什么问题了。

Visual Basic .Net中创建、使用MDI窗体也是本文的重要内容之一,MDI是Multi Document Interface的简称,即:多文档界面,MDI最早出现于Windows 2.0中,最先使用到MDI的应用程序是E xcel电子表格。

为了方便使用者同时能够操作多份电子表格,Excel 就采用了MDI来解决这个问题。

到了Windows3.1中,MDI在应用程序中得到了更大范围的应用。

其中Windows 3.1中的程序管理器和文件管理器都采用了MDI。

目前MDI在应用程序中依然被广泛采用。

下面就首先来介绍一下Visual Basic .Net创建不规则窗体的相关知
识和具体实现方法。

一.简介Visual Basic .Net中定制不规则窗体时使用的类库:Visual Basic .Net中定制不规则窗体主要使用到Region类和G raphicsPath类,其中以GraphicsPath类最为重要。

GraphicsPath类和Region类分别位于.Net FrameWork SDK中的"System.Drawing.Drawi ng2D"命名空间和"System.Drawing"命名空间。

在Visual Basic .Net
中具体实现各种不规则窗体的过程中,GraphicsPath主要作用是根据程序员的要求,通过GraphicsPath中提供的方法绘制不同规则的形状。

Region的主要作用是依靠GraphicsPath实例来初始化Region对象,从而形成不规则窗体。

其具体的实现过程是,首先通过GraphicsPath类构造函数创建GraphicsPath实例,然后通过GraphicsPath中提供的方法按照程序员的要求绘制形状,最后以GraphicsPath实例来初始化Region对象。

完成不规则窗体。

可见了解、掌握GraphicsPath类对于理解本文介绍的实现方法是非常必要的。

表01和表02分别是GraphicsPath类的常用方法和常用属性及其说明:
在本文用Visual Basic .Net实现的椭圆形、扇形、圆形、环形和三角形等形状窗体中就使用到GraphicsPath中的AddEllipse方法(绘制椭圆形)、AddPie方法(绘制扇形)、AddLine方法(绘制直线)等方法。

GraphicsPath中提供了丰富的方法,这对实现更复杂的窗体形状是非常有用的,但完全掌握这些方法的使用方法也需要花费大量的时间和精力。

二.Visual Basic .Net中定制不规则窗体的具体步骤:
正如前文所说在Visual Basic .Net定制不同规则的窗体是比较容易的,再了解了上面内容后,下面就是在Visual Basic .Net实现椭圆形、扇形、圆形、环形和三角形等五种形状窗体的具体实现步骤:
1. 启动Visual Studio .Net。

2. 选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框。

3. 将【项目类型】设置为【Visual Basic项目】。

4. 将【模板】设置为【Windows应用程序】。

5. 在【名称】文本框中输入【中定制不规则窗体】。

6. 在【位置】的文本框中输入【E:\项目】,然后单击【确定】按钮,这样在"E:\项目"目录中就产生了名称为"VB. NET中定制不规则窗体"的文件夹,并在里面创建了名称为" 中定制不规则窗体"的项目文件。

具体如图01所示:
图01:【中定制不规则窗体】新建项目对话框
7. 把Visual Studio .Net的当前窗口切换到【Form1.vb(设计)】窗口,并从【工具箱】中的【Windows窗体组件】选项卡中往Form1窗体中拖入下列组件,并执行相应的操作:
五个Button组件,用以定制五种不同形状窗体,并在这个Butt on组件拖入Form1的设计窗体后,双击它们,则系统会在Form1.vb 文件分别产生这五个组件的Click事件对应的处理代码。

4. 在上述组件拖入窗体后,分别按照图02所示排列并设置窗体中的各组件:
图02:【中定制不规则窗体】项目的设计界面
Regin对象
System.Drawing的一个对象,指示由矩形和由路径构成的图形形状的内部。

因为区域的坐标是在全局坐标中指定的,所以可对它进行缩放。

然而,在绘制表面上,它的内部取决于表示它的像素的大小和形状。

应用程序可以使用若干区域来堆砌绘图操作的输出。

窗口管理器则使用区域来定义窗口的绘制区域。

这些区域被称为剪辑区域。

应用程序还可以在命中检测的操作中使用区域,例如检查一个点或矩形是否与某个区域相交。

应用程序可通过使用Brush 对象来填充一个区域。

GraphicsPath表示一系列相互连接的直线和曲线,应用程序使用路径来绘制形状的轮廓、填充形状内部和创建剪辑区域。

图形引擎在全局坐标空间中维护路径内的几何形状的坐标。

路径可由任意数目的图形(子路径)组成。

每一图形都是由一系列相互连接的直线和曲线或几何形状基元构成的。

图形的起始点是相互连接的一系列直线和曲线中的第一点。

终结点是该序列中的最后一点。

几何形状基元的起始点和终结点都是由基元规范定义的。

8. 把Visual Basic .Net当前窗口切换到Form1.vb的代码编辑
窗口,并用下列代码替换Form1.vb中的Button1的Click事件对应的处理代码,下列代码功能是改变当前窗体形状为椭圆形:
Private Sub Button1_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button1.Click
Dim p As System.Drawing.Drawing2D.GraphicsPath = New System.Drawing.Drawing2D.GraphicsPath ( )
Dim Width As Integer = Me.Width
Dim Height As Integer = Me.Height
p.AddEllipse( 0 , 20 , Width -50 , Height -100 )
'根据要绘制椭圆的形状来填写AddEllipse方法中椭圆对应的相应参数
Region= New Region ( p )
End Sub
9. 用下列代码替换Form1.vb中的Button2的Click事件对应的处理代码,下列代码功能是改变当前窗体形状为扇形:
Private Sub Button2_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button2.Click
Dim p As System.Drawing.Drawing2D.GraphicsPath = New S ystem.Drawing.Drawing2D.GraphicsPath ( )
p.AddPie( 10 , 10 , 250 , 250 , 5 , 150 )
'根据要实现的扇形形状来填写AddPie方法中的相应参数
Me.Region = New Region ( p )
End Sub
10. 用下列代码替换Form1.vb中的Button3的Click事件对应的处理代码,下列代码功能是改变当前窗体形状为圆形:
Private Sub Button3_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button3.Click
Dim p As System.Drawing.Drawing2D.GraphicsPath = New System.Drawing.Drawing2D.GraphicsPath ( )
Dim Width As Integer = Me.Width
Dim Height As Integer = Me.Height
p.AddEllipse( 0 , 0 , Height , Height )
Me.Region = New Region ( p )
'圆形即是椭圆的一种特例,
End Sub
11. 用下列代码替换Form1.vb中的Button4的Click事件对应的处理代码,下列代码功能是改变当前窗体形状为环形:
Private Sub Button4_Click ( ByVal sender As System.Object ,
ByVal e As System.EventArgs ) Handles Button4.Click
Dim p As System.Drawing.Drawing2D.GraphicsPath = New S ystem.Drawing.Drawing2D.GraphicsPath ( )
Dim Height As Integer = Me.Height
Dim width As Integer = 100
p.AddEllipse ( 0 , 0, Height , Height )
p.AddEllipse ( width , width , Height -( width * 2 ) , Heig ht -( width * 2 ) )
'根据环形的形状来分别填写AddEllipse方法中相应的参数
Me.Region = New Region ( p )
End Sub
12. 用下列代码替换Form1.vb中的Button5的Click事件对应的处理代码,下列代码功能是改变当前窗体形状为三角形:
Private Sub Button5_Click ( ByVal sender As System.Object , ByVal e As System.EventArgs ) Handles Button5.Click
Dim p As System.Drawing.Drawing2D.GraphicsPath = New S ystem.Drawing.Drawing2D.GraphicsPath ( )
p.AddLine ( 0 , 0 , 250 , 150 )
p.AddLine ( 250 , 150 , 0 , 300 )
p.AddLine ( 0 , 0 , 0 , 300 )
'根据三角形的形状特征来分别填写AddLine方法中相应的参数Me.Region = New Region ( p )
End Sub
13. 至此在上述步骤都正确完成后,【中定制不规则窗体】项目的全部工作就基本完成了。

此时单击快捷键F5运行程序,单击【中定制不规则窗体】中的【椭圆形】按钮,则会得到图03所示的运行界面:
图03:【中定制不规则窗体】项目运行界面之一
单击【中定制不规则窗体】中的【扇形】按钮,则会得到图04所示的运行界面:
图04:【中定制不规则窗体】项目运行界面之二
单击【中定制不规则窗体】中的【圆形】按钮,则会得到图05所示的运行界面
图05:【中定制不规则窗体】项目运行界面之三
单击【中定制不规则窗体】中的【环形】按钮,则会得到图06所示的运行界面:。

相关文档
最新文档