我创建了一个带有一个按钮的简单页面,然后在click事件中使用FindControl来获取对自身的引用。但是...... FindControl什么都没回来。 代码
Protected Sub EntryDoor1_Click(sender As Object, e As System.EventArgs) Handles EntryDoor1.Click
Dim control = FindControl("EntryDoor1")
control.Visible = False
End Sub
答案 0 :(得分:6)
因为你已经说过你想要“引用自己”,所以我假设您想要引用导致点击事件的按钮。
最简单的方法是使用sender
参数,因为它始终是源代码控件:
Dim button = DirectCast(sender, Button)
但是当按钮位于页面顶部时(如本例所示),将在部分designer.vb
文件中自动创建对控件的引用:
EntryDoor1.Visible = False
那么,如果您有直接引用,为什么要使用FindControl
?
修改强>:
只是为了完整起见。您描述的行为只能有一个原因:您尝试在FindControl
的{{1}}中使用ContentPage
。 This is a special case,您需要首先获得对MasterPage
的引用。然后,您可以ContentPlaceholder
使用FindControl
:
Button
但同样,这是毫无意义的,因为你直接在页面中有了引用。