用VB.NET做WinForm的应用程序 [ English ]2008-2-24 1:52:17 中国学网 跟贴 0 条 网友投稿
用VB.NET做WinForm的应用程序 马金虎 在VB.NET程序设计中,设计Windows的窗体已经完全变了样。在.Net FrameWork中,任一个Windows窗体都是通过继承名称空间中System.Windows.Forms中的一个叫Form类而产生的。用VB.NET做一个WinForm(Windows Form即Windows 窗体)应用程序对于用VB.NET的程序员来说一个基本的,也是最重要的。应用本文就是通过一些例子,循序渐进的介绍用VB.NET做Windows 应用程序的基本要点。这些要点就是:创建一个窗体、为窗体增加组件、编写响应事件。在程序中使用了面向对象的分析方法来设计WinFrom。 一. 程序设计及运行环境 (1).视窗2000专业版本 (2)..Net FrameWork SDK Beta 2 二. 创建第一个VB.NET的窗体 VB.NET的程序员可以利用.Net FrameWork的基本类型库,非常方便、快捷的创建一个 Windows的应用程序。在System.Windows.Forms名称空间中提供了你需要创建一个Windows Form应用程序的所有类型。你可以通过继承System.Windows.Forms.Form类,来建立一个WindowsForm。下面代码的作用就是通过继承System.Windows.Forms.Form来建立一个名字为Form1的类: Public Class Form1 : Inherits System.Windows.Forms.Form End Class 请注意如果你把Inherits关键字部分放在另外一行,你就不需要在类的名字和 Inherits关键字中间加上冒号,具体如下: Public Class Form1 Inherits System.Windows.Forms.Form End Class 在本文中一般定义了二个Sub,分别为New( ),InitializeComponent()。其中第一 个是一个构造器,当你用NEW关键字继承了一个对象,此Class中的一个构造器就会被调用。在此构造器中,通常是写一些初始化的代码。如果你的初始化代码有很多行,你可以建立一个PrivateSub来管理这些代码,这就是--InitializeComponent()。 下面就是第一个Form的源程序(form1.vb)和运行后的界面: Imports System.Windows.Forms Imports System.ComponentModel Public Class Form1 Inherits System.Windows.Forms.Form Public Sub New ( ) InitializeComponent( ) End Sub Private Sub InitializeComponent( ) Me.Text = "第一个空的窗体!" Me.Width = 400 Me.Height = 300 End Sub End Class Module Module1 Sub Main ( ) Application.Run ( new Form1 ( ) ) End sub End Module 通过以下编译命令就可以得到一个Windows Form可执行文件。 Vbc /t:winexe /r:system.dll /r:system.windows.forms.dll form1.vb 这只是一个没有任何组件的空的窗体,只有加入组件的窗体才是用途的,接下来的就介绍如何在窗体上加入组件。 三.在窗体上加入组件(form2.vb): 在.Net FrameWork的基本类型库中提供了很多可以常用的组件。在窗体中加入组件一般需要以下三个步骤: (1).定义一个组件变量 (2).获得一个组件的实例并初始化 (3).在窗体上加入组件 在程序中应注意以下几点: (1).由于在VB.NET中,每个变量都有着不同的范围。所有在什么地点声明变量就显得比较重要。譬如在一个函数中声明的变量只能在此函数中使用。如果你想在整个Class中使用某个变量,就在Class的基本声明。 (2).得到一个组件的实例和获得一个对象的实例相似。使用了NEW关键字,你就获得了一个组件的的实例,就可以加入到Form中。但是你不能直接加入到Form中,因为在Form类中没有加入组件的方法。但是Form类可以继承Control类中的Controls属性。在Form类中,可以使用这个属性得到窗体中的System.Windows.Forms.Form.ControlCollection对象。在Form.ControlCollection类中描述了所有可以在窗体中使用的组件。你可以使用其中的Add和Remove方法在窗体中加入或者是删除组件。 在理解了上面的知识以后,我们就试图来在窗体上加入一个按钮和一个文本框。 以下就是源程序代码(Form2.vb)和程序运行后的界面 Imports System.Drawing Imports System.Windows.Forms Imports System.ComponentModel Imports System Public Class Form1 Inherits Form 注释: 定义一个按钮和文本框 Private Button1 As Button Private TextBox1 As TextBox Public Sub New() InitializeComponent ( ) End Sub Private Sub InitializeComponent() Me.Text = "在窗体上加入组件!" Me.Width = 400 Me.Height = 300 Button1 = New Button ( ) TextBox1 = New TextBox ( ) Button1.Left = 200 Button1.Top = 200 Button1.Width = 100 Button1.Height = 40 Button1.TabIndex = 0 Button1.Text = "确定" TextBox1.Left = 200 TextBox1.Top = 30 TextBox1.Width = 150 TextBox1.Height = 40 Me.Controls.Add ( Button1 ) Me.Controls.Add ( TextBox1 ) End Sub End Class Module Module1 Sub Main ( ) Application.Run ( new Form1 ( ) ) End sub End Module 通过以下编译命令编译后,运行界面如下: Vbc /t:winexe /r:system.dll /r:system.windows.forms.dll form2.vb 图02:加入了一个按钮和一个文本框的窗体 四.添加了事件的窗体(form3.vb): VB.NET的上一个版本是VB,他准确的说不是一个完全的面向对象的编程语言,而是一个面向事件的编程语言。在VB中,编写响应事件的程序是一件非常容易的事情。例如:如果你已经创建了一个按钮叫Button1,你要编响应点击此按钮的事件,你所要做的全部工作就是创建一个叫Button1_Click的事件过程。(实际上VB的IDE已经替你做了这些)。在VB.NET中也是如此,在设计模式下,你建立一个组件,你就可以通过点击此组件告诉Visual Studio .Net你想要写什么样事件处理过程。但在本节,我们将告诉你如何手动完成这些,这样将会有助于你理解在VB.NET中事件是如何工作的。 如果你想要一个对象响应事件,那么在声明他的时候要带上关键字WithEvents。例如,如果你想在程序中编写一个按钮的事件,在声明的时候用: Private WithEvents Button1 As Button 代替: 接着你还有为对象要响应的事件创建事件过程。例如,对一个Button1,要编写单击(Click)过程,你就需要创建Button1_Click,具体如下: Private Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Button1.Click 注释:在此写事件处理代码 End Sub Form类和所有组件的类都继承了Control类中的事件。在.Net FrameWork中的手册中,System.Windows.Forms.Control中共定义了大约58个事件,像:Click,DoubleClick, GotFocus, LostFocus, KeyUp等等。 以下就是在窗体中定义了Button1的Click和GotFocus事件的例子。 源程序代码(form3.vb),及运行后的界面 Imports System.Drawing Imports System.Windows.Forms Imports System.ComponentModel Imports System Public Class Form1 Inherits Form Private WithEvents Button1 As Button Private TextBox1 As TextBox Public Sub New() InitializeComponent ( ) End Sub Private Sub InitializeComponent ( ) Me.Text = "处理事件的窗体!" Me.Width = 400 Me.Height = 300 Button1 = New Button ( ) TextBox1 = New TextBox ( ) Button1.Left = 200 Button1.Top = 200 Button1.Width = 100 Button1.Height = 40 Button1.TabIndex = 0 Button1.Text = "按钮" TextBox1.Left = 200 TextBox1.Top = 30 TextBox1.Width = 150 TextBox1.Height = 40 Me.Controls.Add ( Button1 ) Me.Controls.Add ( TextBox1 ) End Sub Private Sub Button1_Click ( ByVal senderAs Object , _ ByVal e As System.EventArgs ) Handles Button1.Click TextBox1.Text = "单击按钮!" End Sub Private Sub Button1_GotFocus ( ByVal senderAs Object, _ ByVal e As System.EventArgs ) Handles Button1.GotFocus TextBox1.Text = "按钮获得了焦点!" End Sub End Class Module Module1 Sub Main ( ) Application.Run ( new Form1 ( ) ) End sub End Module 在用以下命令编译文件,运行后得到以下界面: 图03:按钮获得焦点时的运行界面 图04:点击按钮时的运行界面 五.总结 至此我们已经完成了用VB.NET做一个完整的Windows应用程序的全部过程,虽然结构上相对简单,但都比较具有代表性,可以触类旁通,在此基础上创建出结构更复杂、功能更完备的Windows应用程序。 转帖于 Xue163.com_VB.NET |
|