在尝试访问控制的cs页面中使用“this”时出错

时间:2012-01-05 21:29:36

标签: c# asp.net controls

我有一个名为test.aspx的页面,带有test.cs. 但是,我想访问名为mbResult的控件 这是我的自定义消息框控件,来自一个单独的CS页面。 我知道很多人都问过这个问题,我发现这是一种访问我的控件的方法。

MessageBoxControl mbox1 = this.FindControl("mbResult") as MessageBoxControl; 

但我一直收到这个错误 错误5关键字'this'在静态属性,静态方法或静态字段初始值设定项中无效

关于如何访问此控件的任何想法我想要做的就是让它可见。 感谢

2 个答案:

答案 0 :(得分:2)

Statics没有基于实例的上下文,因此使用this不适用。您需要对要使用的控件的引用.FindControl(可能通过将其作为参数传递)。

答案 1 :(得分:2)

您需要将代码移动到非共享方法中。您需要在页面的实例中操作。

更新评论中的说明

不幸的是,您的应用程序需要进行一些重组。

如果messageboxcontrol显示在新窗口中,则需要将源页面中的值传递给查询字符串中的新窗口。

但是,如果您希望消息框控件显示在源页面上,则需要将其从页面转换为UserControl,将用户控件的引用添加到源页面,然后添加实例用户控件直接到源页面。