Welcome

首页 / 软件开发 / VB.NET / 对一个对象进行多种操作

对一个对象进行多种操作2007-05-24 本站 用户可能经常对一个对象进行一系列的多种操作。例如,可能需要对一个对象设置几种属性,可采用如下多种方法:
1.使用多种表述
如下代码:

Private Sub InitializeComponet() Button1.Text="OK" Button1.Visible=True Button1.Top=200 Button1.Left=5000 Button1.Enabled=TrueEnd sub也可以更容易的使用With...End With提高代码的效率,代码如下:Private Sub InitializeComponent() With Button1 .Text="OK" .visible=True .Top=200 .Left=5000 .Enalbed=TrueEnd WithEnd Sub可以在With...End With模块中使用嵌套,如下代码所示:Imports color=system.Drawing.ColorSub SetupForm(0 Dim frmAnotherForm As New form1() With frmAnotherForm .show() "show the new form .Top=250 .Left=250 .ForeColor=Color.LightBlue .BackColor=Color.DarkBlue With frmAnotherForm.texbox1 .BackColor=Color.Thistle "change the background .Text="Some Text" "place some text in the textbox End With End WithEnd Sub
2.把窗体看作对象
窗体是描述用户的应用程序和用户接口的类,当窗体显示以后,一个窗体类的对象就被建立并且象其他任何的对象一样,用户可以给窗体加入一个自定义的属性和方法,并且从其他的类访问这些属性和方法,要给一个窗体加入一个方法,只需要在代码中加入一个声明为Public的过程就可以了,如下代码:
"Custom method on Form1
Public Sub PrintMyJob()
    <statements>
End Sub
要给一个窗体加入一个数据成员,只需要把一个公有的变量在窗台体模块中声明就可以了:
Public IDNumber As Integer
当引用一个窗体的名称,其实确切地讲,引用的是这个窗体属于的类,而不是窗体这个对象本身,一个经常容易犯的错误就是企图不使用对象变量而直接引用一个类的属性,例如:
Form1.PrintMyJob "Error,this will not work unless you created form1
为了访问一个不同的窗体上的方法需要先建立一个那种窗体类的实例,并把它赋给一个对象变量,如下面的例子:
Dim frmForm1 as New Form1
frmForm1.PrintMyJob
注意到上面这个例子建立了一个新的窗体对象,而且没有显示它。如果用户需要使用一个窗体对象的方法的话,没有必要一定要把这个窗体显示出来。如果需要显示一个新的窗体,只需用如下代码即可:
frmForm1.show
对于一个窗体类的实例而言,它的属性值是确定的,用户可以很容易就能访问当前的窗体的属性值,但如果想访问任意一个窗体的话,情况就会复杂一点。例如:假如有这样一个应用程序,它有一个主窗体名为Form1,而且有两个子窗体分别名为form2和form3,它们之间需要相互得到一些对方的信息。一个解决方法就是把需要在主窗体中声明Public Shared对象变量来对其他的窗体进行引用。Public Shared对象变量是在所有实例中共享相同值的类成员。
下面的例子说明了怎样在form1对象中设置和使用Public Shared对象变量,如果有很多窗体的话,可以建立一个Public Shared对象变量窗体的集合。
用户可以通过以下方法建立一个公有的共享的对象变量:
(1)把应用程序需要使用的窗体都设计好,确认在其他的窗体需要访问的控件都设置为了Public,例如:
Public txtMyTextBox As System.WinForms.TextBox
(2)在主窗体中声明Public Shared变量,并让它能够存储对其他窗体的引用,例如:
Public Shared frmForm2 As form2
Public Shared frmForm3 As form3
(3)建立其他的窗体类的实例,并且把对象的引用设置为Public Shared变量:
form1.frmForm2=New Form2 "create form2 and save reference
form1.frmForm3=New Form3 "create form3 and save reference
(4)在合适的时候显示窗体,例如:
form1.frmform2.Show()
form1.frmform3.Show()
(5)现在就可以象访问主窗体的属性一样,访问其他窗体的数据,例如:
Me.texSomeTextBox.Text=form1.frmForm3.txtMyTextBox.text
form1.frmForm3.BackColor=system.Drawing.Color.DarkGray