2012-01-07 148 views
1

我是vb.net编程的初学者,我对创建控件略有困惑。看来,当我在线上下面的代码我看到的是交替使用:vb.net以编程方式创建控件

Dim x As Button 
Dim y As New Button() 

甚至

Dim z As New System.Windows.Forms.Button() 

它无论我怎样声明变量?提前致谢。

回答

1

System.windows.forms.Button与声明Button相同。您只需导入System.windows.forms命名空间。这是除非你已经在不同的命名空间中创建自己的按钮类,但我怀疑你有。

类名称后面的括号将创建该类的未定义大小的数组。没有括号正在创建该类的一个实例。

创建控件的新实例时需要使用new关键字。没有它,您创建的变量将需要分配给相同类型的现有对象。鉴于您希望以编程方式创建按钮,您应该使用new关键字。

看一看这些教程的基本介绍创建类 http://www.homeandlearn.co.uk/net/nets11p2.html http://visualbasic.about.com/od/quicktips/qt/shared_member.htm

+0

除了括号外,我得到了一切。当你说“它创建了一个未定义的大小的数组”时,你是什么意思?请把它放下来好吗? :P后 – 12japerk 2012-01-07 03:21:17

+1

括号中的类的名称没有创建的阵列。当您使用New关键字时,您正在初始化该控件的新实例。这将调用该控件的默认构造函数,该构造函数被定义为Public Sub New()。控件名称后面的括号用于将任何参数传递给构造函数。由于该按钮没有任何参数被传入,因此只剩下括号。 – briddums 2012-01-07 03:25:52

+0

谢谢,你的回答是非常有益的 – 12japerk 2012-01-07 03:30:08

1

这声明了一个名为x的Button类型的变量。你不能使用它,直到你指定它。

Dim x As Button 

这个实例化一个按钮并将它分配给y。给人yoiu可用按钮“被称为” Y

Dim y As New Button() 

甚至

这是X相同,但采用的是完全合格的名称,例如对来自Jacob.Perkins.Button区别,如果你已经发明了你自己的。

Dim z As New System.Windows.Forms.Button() 

所以是的,它确实很重要。

何时使用new,wehn需要创建(实例化)一个。

在.NET

Dim x as Button 
// followed by 
x = new Button() 
// is the same as 
Dim x as new Button() 

昏暗x作为按钮所声明的变量名为x是预期的“点到”按钮的实例。

如果你说x = 36,你会得到一个编译器错误,因为36不是按钮,它是一个数字。如果你说x = Button1和Button1存在于你的表单上,那么这就好了,当然它也是一个按钮。

在某一点的唯一途径“理解”这个东西它开始尝试它..没有什么可怕的会发生,保持简单,当你阅读的错误消息,您犯任何错误都会变得明显。

+0

我仍然感到困惑。你什么时候使用“新”和“()”,你什么时候不想使用它们。 – 12japerk 2012-01-07 02:37:54