窗体是程序设计最常见,最普通,也是最容易受到程序员忽视的编程对象。一般来说,在Visual Basic .Net针对窗体的编程是不需要人为介入的,因为可视化编程工具Visual Studio .Net已经按照窗体的缺省状态实现了。
窗体是程序设计最常见,最普通,也是最容易受到程序员忽视的编程对象。一般来说,在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的应用程序是Excel电子表格。为了方便使用者同时能够操作多份电子表格,Excel就采用了MDI来解决这个问题。到了Windows3.1中,MDI在应用程序中得到了更大范围的应用。其中Windows 3.1中的程序管理器和文件管理器都采用了MDI。目前MDI在应用程序中依然被广泛采用。下面就首先来介绍一下Visual Basic .Net创建不规则窗体的相关知识和具体实现方法。
一.简介Visual Basic .Net中定制不规则窗体时使用的类库: Visual Basic .Net中定制不规则窗体主要使用到Region类和GraphicsPath类,其中以GraphicsPath类最为重要。GraphicsPath类和Region类分别位于.Net FrameWork SDK中的"System.Drawing.Drawing2D"命名空间和"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. 在【名称】文本框中输入【VB.NET中定制不规则窗体】。
6. 在【位置】的文本框中输入【E:\VS.NET项目】,然后单击【确定】按钮,这样在"E:\VS.NET项目"目录中就产生了名称为"VB.NET中定制不规则窗体"的文件夹,并在里面创建了名称为"VB.NET中定制不规则窗体"的项目文件。具体如图01所示:
图01:【VB.NET中定制不规则窗体】新建项目对话框 7. 把Visual Studio .Net的当前窗口切换到【Form1.vb(设计)】窗口,并从【工具箱】中的【Windows窗体组件】选项卡中往Form1窗体中拖入下列组件,并执行相应的操作:
五个Button组件,用以定制五种不同形状窗体,并在这个Button组件拖入Form1的设计窗体后,双击它们,则系统会在Form1.vb文件分别产生这五个组件的Click事件对应的处理代码。
4. 在上述组件拖入窗体后,分别按照图02所示排列并设置窗体中的各组件:
图02:【VB.NET中定制不规则窗体】项目的设计界面 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.ClientSize.Width
Dim Height As Integer = Me.ClientSize.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 System.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.ClientSize.Width
Dim Height As Integer = Me.ClientSize.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 System.Drawing.Drawing2D.GraphicsPath ( )
Dim Height As Integer = Me.ClientSize.Height
Dim width As Integer = 100
p.AddEllipse ( 0 , 0 , Height , Height )
p.AddEllipse ( width , width , Height - ( width * 2 ) , Height - ( 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 System.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. 至此在上述步骤都正确完成后,【VB.NET中定制不规则窗体】项目的全部工作就基本完成了。此时单击快捷键F5运行程序,单击【VB.NET中定制不规则窗体】中的【椭圆形】按钮,则会得到图03所示的运行界面:
图03:【VB.NET中定制不规则窗体】项目运行界面之一 单击【VB.NET中定制不规则窗体】中的【扇形】按钮,则会得到图04所示的运行界面:
图04:【VB.NET中定制不规则窗体】项目运行界面之二 单击【VB.NET中定制不规则窗体】中的【圆形】按钮,则会得到图05所示的运行界面
图05:【VB.NET中定制不规则窗体】项目运行界面之三 单击【VB.NET中定制不规则窗体】中的【环形】按钮,则会得到图06所示的运行界面: