Henry手记 - VB.NET Windows 窗体引介(二)
韩睿 ( 12/26/2002)
上一篇发表后,有读者来信和留言,认为是不是太简单了?其实,Henry是有一些私心的,本来我准备继续讨论Datagrid中的事件响应(如双击cell这样的复杂过程),但必须要涉及到事件处理方法的内容,正好本文的结构可以让Henry在适当扩充后达到这一目标。这虽然是个不复杂的问题,但写清楚还是不太容易的,写完此篇后,发现除结构上与原文一致外,已经面目全非了,为了保证对原作者的尊重,只好将此篇剔除出译作的范围,这里有原文的链接,可供读者自行参考。并借此机会对原作者提供的帮助表示感谢。
添加控件
如果没有控件,您的窗体还并不是真正有用。.NET Framework基本类型库提供了大量控件以备使用。你可以使用button, checkbox, textbox, label...如果对于.NET Framework您还是个新手,您还需要研究一下Object派生树。以button控件为例,其派生关系如图1所示:
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
System.Windows.Forms.ButtonBase
System.Windows.Forms.Button
图1 Button控件派生树
所有控件都是派生自Cotrol类,向窗体中添加一个控件需要以下三个步骤:
(1)定义一个控件变量
(2)实例化控件
(3)把控件加入窗体中
因为VB.NET变量有不同的应用范围,在何处声明一个变量才是最重要的。在一个函数内声明的变量只能在函数内生存。如果您想让您的控件在整个类中都可用,请在类级别上定义它。
实例化一个控件就象实例化其它任何对象一样,使用NEW关键字。一旦您有一个实例化了的控件,你就可以将其加入窗体中去。因为Form类没有诸如Add(Control)这样的方法,你不能直接将控件添加到窗体上去。但是,Form类从Control类继承了Controls属性。在Form类中,您可以使用此属性去获取该Form的System.Windows.Forms.Form.ControlCollection对象。这个System.Windows.Forms.Form.ControlCollection类代表了在窗体中包含的控件的集合。您可以使用它的Add方法往窗体中添加控件,用Remove方法把一个控件从窗体中移除。要理解这三个步骤,以添加一个Button控件为例将代码示例如下:
''''声明button变量
Dim Button1 As System.Windows.Forms.Button
''''实例化button
Button1 = New System.Windows.Forms.Button()
''''将 button 加至窗体
Me.Controls.Add(Button1)
如果您不是只添加一个控件,而是要加入多个控件,一般不要使用Add方法去一个个添加,而是使用AddRange方法去添加一组Control对象。比如,您往窗体中添加一个button(ID:button1),同时添加一个textbox(textbox1),可以这样写:
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.TextBox1, Me.Button1})
您可以通过设置控件的多个属性去获得您所需要的控件。可以在将其加到窗体之前或之后设置这些属性,但必须是要实例化了控件之后。一个控件的属性通常有控制其大小与位置的Left, Top, Width 和Height。一个Button属性还有Text属性用于显示button对象的文本等等。以下的代码是继续上一节的内容,补充初始化的代码:
Private Button1 As System.Windows.Forms.Button
Private TextBox1 As System.Windows.Forms.TextBox
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.Button1 = New System.Windows.Forms.Button()
Me.TextBox1 = New System.Windows.Forms.TextBox()
Me.SuspendLayout()
''''Button1
Me.Button1.Location = New System.Drawing.Point(200, 72)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(96, 56)
Me.Button1.TabIndex = 0
Me.Button1.Text = "Button1"
''''TextBox1
Me.TextBox1.Location = New System.Drawing.Point(216, 168)
Me.TextBox1.Name = "TextBox1"
[1] [2] [3] 下一页 [C语言系列]NET 中C#的switch语句的语法 [系统软件]windows下Apache+php+mysql的安装与配置图解 [操作系统]在Windows中玩转Linux操作系统 [操作系统]死马还当活马医:6种方法挽救Windows系统 [聊天工具]四大更新 Windows Live Msn 8.1评测 [聊天工具]Windows Live Messenger最新0683版亮相_联络工具_… [聊天工具]Windows Live Mail招人爱的N个理由_联络工具_Wind… [聊天工具]Windows Live Mail Desktop多图欣赏_联络工具_Win… [聊天工具]OE老了 微软开发新邮件客户端取而代之_联络工具 [聊天工具]Windows Live Messenger中文版试用报告(一)__天极…
|