如何找出类中的哪个方法(例如事件处理程序方法或构建 UI(例如表格)的方法)属于哪个控件?我是否需要设计师努力才能做到这一点,以便我可以查看控件的属性?
例如,如果从设计器中拖入一个按钮,然后单击名为
button1
的按钮,它将创建一个名为 button1_handler
的事件处理程序方法。如何判断代码中的哪个方法属于哪个控件?再说一遍,我是否需要设计人员才能工作,以便我可以单击每个控件并查看属性并查看名称?
如果是这样的话,我现在无法打开设计器,因为 VS 一直抱怨
OracleClient.OracleConnection
没有被定义,即使我已经确认它们在项目中被引用。
我可以构建并运行该项目,但无法打开设计器,因为仅在尝试使用设计器时才会出现此错误。
当您在设计器中向表单添加控件时,IDE 会添加一个以其声明的字段命名的字段
WithEvents
,例如
Friend WithEvents Button1 As Button
WithEvents
关键字允许将字段包含在Handles
子句中以处理事件。当您通过设计器为该控件创建事件处理程序时,无论是通过双击或通过“属性”窗口,还是使用代码窗口中的导航栏,将为适用的事件生成一个方法,其签名如下:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
该方法以控件和事件命名,中间有一个下划线,并且它有一个
Handles
子句,其中包含用字段名称限定的事件名称。您可以通过在代码中搜索
“Sub Button1_”或 “Handles Button1.” 来查找以这种方式生成的特定控件的所有事件处理程序。 您还可以使用
AddressOf
运算符处理事件,但我认为您可能知道您是否已经这样做了。您必须手动执行此操作,或者在属性中指定不为控件生成字段。如果您已完成上述任一操作,您还可以搜索“AddHandler Button1”。找到代码中完成的所有位置并从那里获取方法名称。请注意,如果您指定不声明字段,这些行将位于设计器代码文件中。