窗体是程序设计最常见最普通也是最容易受到程序员忽视的编程对象一般来说在Visual Basic Net针对窗体的编程是不需要人为介入的因为可视化编程工具Visual Studio Net已经按照窗体的缺省状态实现了但是在最近遇到的应用程序中我们发现越来越多的应用程序中使用到各种不同规则的窗体这些不同规则的窗体给应用程序带来异常的情趣和不同平常的效果的同时也促使使用者思考这样一个问题如何创建这些窗体?在Visual Basic Net中提供了一种简单直接创建不规则窗体的方法本文的主要内容就是探讨一下这些方法具体的实现过程下面就来详细介绍在Visual Basic Net中实现五种不同规格窗体的方法即椭圆形扇形圆形环形和三角形掌握了这五种不同形状窗体的实现方法后我想对于其他规则的窗体就不应该有什么问题了
Visual Basic Net中创建使用MDI窗体也是本文的重要内容之一MDI是Multi Document Interface的简称即多文档界面MDI最早出现于Windows 中最先使用到MDI的应用程序是Excel电子表格为了方便使用者同时能够操作多份电子表格Excel就采用了MDI来解决这个问题到了Windows中MDI在应用程序中得到了更大范围的应用其中Windows 中的程序管理器和文件管理器都采用了MDI目前MDI在应用程序中依然被广泛采用下面就首先来介绍一下Visual Basic Net创建不规则窗体的相关知识和具体实现方法
一.简介Visual Basic Net中定制不规则窗体时使用的类库
Visual Basic Net中定制不规则窗体主要使用到Region类和GraphicsPath类其中以GraphicsPath类最为重要GraphicsPath类和Region类分别位于Net FrameWork SDK中的SystemDrawingDrawingD命名空间和SystemDrawing命名空间在Visual Basic Net中具体实现各种不规则窗体的过程中GraphicsPath主要作用是根据程序员的要求通过GraphicsPath中提供的方法绘制不同规则的形状Region的主要作用是依靠GraphicsPath实例来初始化Region对象从而形成不规则窗体
其具体的实现过程是首先通过GraphicsPath类构造函数创建GraphicsPath实例然后通过GraphicsPath中提供的方法按照程序员的要求绘制形状最后以GraphicsPath实例来初始化Region对象完成不规则窗体可见了解掌握GraphicsPath类对于理解本文介绍的实现方法是非常必要的表和表分别是GraphicsPath类的常用方法和常用属性及其说明
在本文用Visual Basic Net实现的椭圆形扇形圆形环形和三角形等形状窗体中就使用到GraphicsPath中的AddEllipse方法(绘制椭圆形)AddPie方法(绘制扇形)AddLine方法(绘制直线)等方法GraphicsPath中提供了丰富的方法这对实现更复杂的窗体形状是非常有用的但完全掌握这些方法的使用方法也需要花费大量的时间和精力
二.Visual Basic Net中定制不规则窗体的具体步骤
正如前文所说在Visual Basic Net定制不同规则的窗体是比较容易的再了解了上面内容后下面就是在Visual Basic Net实现椭圆形扇形圆形环形和三角形等五种形状窗体的具体实现步骤
启动Visual Studio Net
选择菜单【文件】|【新建】|【项目】后弹出【新建项目】对话框
将【项目类型】设置为【Visual Basic项目】
将【模板】设置为【Windows应用程序】
在【名称】文本框中输入【VBNET中定制不规则窗体】
在【位置】的文本框中输入【E:\VSNET项目】然后单击【确定】按钮这样在E:\VSNET项目目录中就产生了名称为VBNET中定制不规则窗体的文件夹并在里面创建了名称为VBNET中定制不规则窗体的项目文件具体如图所示
图【VBNET中定制不规则窗体】新建项目对话框 把Visual Studio Net的当前窗口切换到【Formvb(设计)】窗口并从【工具箱】中的【Windows窗体组件】选项卡中往Form窗体中拖入下列组件并执行相应的操作
五个Button组件用以定制五种不同形状窗体并在这个Button组件拖入Form的设计窗体后双击它们则系统会在Formvb文件分别产生这五个组件的Click事件对应的处理代码
在上述组件拖入窗体后分别按照图所示排列并设置窗体中的各组件
图【VBNET中定制不规则窗体】项目的设计界面 把Visual Basic Net当前窗口切换到Formvb的代码编辑窗口并用下列代码替换Formvb中的Button的Click事件对应的处理代码下列代码功能是改变当前窗体形状为椭圆形
Private Sub Button_Click ( ByVal sender As SystemObject ByVal e As SystemEventArgs ) Handles ButtonClick
Dim p As SystemDrawingDrawingDGraphicsPath = NewSystemDrawingDrawingDGraphicsPath ( )
Dim Width As Integer = MeClientSizeWidth
Dim Height As Integer = MeClientSizeHeight
pAddEllipse ( Width Height )
根据要绘制椭圆的形状来填写AddEllipse方法中椭圆对应的相应参数
Region = New Region ( p )
End Sub
用下列代码替换Formvb中的Button的Click事件对应的处理代码下列代码功能是改变当前窗体形状为扇形
Private Sub Button_Click ( ByVal sender As SystemObject ByVal e As SystemEventArgs ) Handles ButtonClick
Dim p As SystemDrawingDrawingDGraphicsPath = New SystemDrawingDrawingDGraphicsPath ( )
pAddPie ( )
根据要实现的扇形形状来填写AddPie方法中的相应参数
MeRegion = New Region ( p )
End Sub
用下列代码替换Formvb中的Button的Click事件对应的处理代码下列代码功能是改变当前窗体形状为圆形
Private Sub Button_Click ( ByVal sender As SystemObject ByVal e As SystemEventArgs ) Handles ButtonClick
Dim p As SystemDrawingDrawingDGraphicsPath = New SystemDrawingDrawingDGraphicsPath ( )
Dim Width As Integer = MeClientSizeWidth
Dim Height As Integer = MeClientSizeHeight
pAddEllipse ( Height Height )
MeRegion = New Region ( p )
圆形即是椭圆的一种特例
End Sub
用下列代码替换Formvb中的Button的Click事件对应的处理代码下列代码功能是改变当前窗体形状为环形
Private Sub Button_Click ( ByVal sender As SystemObject ByVal e As SystemEventArgs ) Handles ButtonClick
Dim p As SystemDrawingDrawingDGraphicsPath = New SystemDrawingDrawingDGraphicsPath ( )
Dim Height As Integer = MeClientSizeHeight
Dim width As Integer =
pAddEllipse ( Height Height )
pAddEllipse ( width width Height ( width * ) Height ( width * ) )
根据环形的形状来分别填写AddEllipse方法中相应的参数
MeRegion = New Region ( p )
End Sub
用下列代码替换Formvb中的Button的Click事件对应的处理代码下列代码功能是改变当前窗体形状为三角形
Private Sub Button_Click ( ByVal sender As SystemObject ByVal e As SystemEventArgs ) Handles ButtonClick
Dim p As SystemDrawingDrawingDGraphicsPath = New SystemDrawingDrawingDGraphicsPath ( )
pAddLine ( )
pAddLine ( )
pAddLine ( )
根据三角形的形状特征来分别填写AddLine方法中相应的参数
MeRegion = New Region ( p )
End Sub
至此在上述步骤都正确完成后【VBNET中定制不规则窗体】项目的全部工作就基本完成了此时单击快捷键F运行程序单击【VBNET中定制不规则窗体】中的【椭圆形】按钮则会得到图所示的运行界面
图【VBNET中定制不规则窗体】项目运行界面之一单击【VBNET中定制不规则窗体】中的【扇形】按钮则会得到图所示的运行界面
图【VBNET中定制不规则窗体】项目运行界面之二单击【VBNET中定制不规则窗体】中的【圆形】按钮则会得到图所示的运行界面
图【VBNET中定制不规则窗体】项目运行界面之三单击【VBNET中定制不规则窗体】中的【环形】按钮则会得到图所示的运行界面