设为首页收藏本站language 语言切换
查看: 1782|回复: 0
收起左侧

用VB.NET做WinForm的应用程序

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

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-10 15:43 , Processed in 0.059740 second(s), 24 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表