C# 使用'时出错;这';在试图访问控制的cs页面中

C# 使用'时出错;这';在试图访问控制的cs页面中,c#,asp.net,controls,C#,Asp.net,Controls,我有一个名为test.aspx和test.cs的页面。 但是,我想访问名为mbResult的控件 这是我的自定义messagebox控件,来自单独的CS页面。 我知道很多人都问过这个问题,我发现这是一种访问我的控件的方法 MessageBoxControl mbox1 = this.FindControl("mbResult") as MessageBoxControl; 但我总是犯这个错误 错误5关键字“this”在静态属性、静态方法或静态字段初始值设定项中无效 任何关于如何访问此控件的想

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

MessageBoxControl mbox1 = this.FindControl("mbResult") as MessageBoxControl; 
但我总是犯这个错误 错误5关键字“this”在静态属性、静态方法或静态字段初始值设定项中无效

任何关于如何访问此控件的想法,我所要做的就是使其可见。
谢谢

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

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

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

评论中的澄清更新

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

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


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

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

评论中的澄清更新

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

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


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

hmm我不太确定如何实现这一点。我是在test.aspx页面还是在我的新cs页面上创建该方法。您是在test.cs上添加该方法。但是,现在我想了想,您将无法这样做,因为您不会在同一个请求中实例化这两个页面。你能指出你想要完成什么吗?您是否正在尝试将值从一个页面发送到另一个页面?嗯,我希望能够从我的cs页面更改messageboxcontrol的文本原因是,它将处理部分代码,如果有例外,我希望消息框与错误一起显示,并根据评论对答案进行额外澄清。嗯,我不太确定如何实现这一点。我是在test.aspx页面还是在我的新cs页面上创建该方法。您是在test.cs上添加该方法。但是,现在我想了想,您将无法这样做,因为您不会在同一个请求中实例化这两个页面。你能指出你想要完成什么吗?您是否正在尝试将值从一个页面发送到另一个页面?嗯,我希望能够从我的cs页面更改messageboxcontrol的文本原因是,它将处理部分代码,如果有例外情况,我希望messagebox与错误一起显示,并根据评论更新答案和附加说明。