使用主窗体控件的最佳实践

时间:2016-06-29 02:30:04

标签: vb.net oop

所以我想说我有一个在启动时打开的form1。 Form1包含一个名为textbox1的文本框和一个名为button1的按钮。当我单击button1时,这是一个名为的代码:

Class form1

    Sub CapLetters () 'buttons click event

       Dim myObj as new MyObject

       MyObj.CapAllLetters
       Textbox1.text = MyObj.GetThoseCapLetters

    End sub

End class

现在,我知道这有点愚蠢,但我的主要问题是,因为即时创建一个新对象,textbox1将无法在我的对象中使用,除非我特别称之为:

Form1.textbox1.text

这是一种好的做法还是有更好的方法?现在我的程序中有大约10个文本框和组合框我需要使用我的对象。我知道我可以这样做:

MyObj.CapAllLetters (textbox1.text)

但是,在方法中传递那么多值似乎不是一个好主意。

我认为我需要一种方法让我的对象在启动它时收集所有信息?

思想?

1 个答案:

答案 0 :(得分:1)

您似乎基本上在询问是否可以使用表单的默认实例。答案是肯定的。在最近的VB版本中,每个具有无参数构造函数的表单也都有一个默认实例,它是一个可以通过类名随时随地访问的实例。存在此功能是因为它使初学者更容易从项目中的不同位置访问表单,而不必担心将引用传递给该项目周围的表单。

对于项目中的启动表单,它始终是其类型的默认实例,假设您尚未禁用应用程序框架。这意味着您始终可以使用其类型的默认实例访问项目中任何位置的启动表单。

现在,您会发现经验丰富的开发人员很少使用默认实例。那是因为它们从不需要,如果你知道自己在做什么,很少会增加价值。这意味着您始终可以在整个项目中访问应用程序的启动表单,而不使用默认实例。