c# - 通过反射获取控件

标签 c# .net reflection

我需要使用反射通过它的 ID 从我的页面获取控件 [textbox,label,button ...etc]

在我的例子中,我有一个所有其他系统页面都继承自它的类,并且这个类覆盖了 onload 事件以将某些属性更改为某些控件

就像通过它的名字设置文本框的可见性状态但是因为我没有直接在页面上的控件因为我可能在母版页的内容占位符上有它所以我也不能使用 findcontrol 方法我认为递归查找控件的函数将花费太多时间

所以我尝试通过反射找到一个带有它名字的控件然后改变它的可见或启用状态

我使用了 FieldInfo 类,但对我不起作用

FieldInfo fi = this.GetType().GetField("ControlID", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public | BindingFlags.IgnoreCase);

任何帮助!

最佳答案

你试过了吗FindControl

  Control myControl = this.FindControl("TextBox2");
  if(myControl !=null)
  {
       // Do Stuff
  }

关于c# - 通过反射获取控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6001807/

相关文章:

C# 从多个应用程序读取/写入文件

c# - 使用父属性实例化继承对象类

c# - 如何在 sql server 中加密数据并在 .net 应用程序中解密

java - 尝试使用反射调用私有(private)字段上的方法时出现 NullPointerException

c# - 如何检索字典 <?,?> 中包含的所有键值对?

c# - NSubstitute - 伪造一个调用另一个虚拟方法的虚拟方法

c# - System.Net.Http : missing from namespace?(使用.net 4.5)

c# - 无法让 WCF 休息服务通过 HTTPS 工作

.net - 在 IE8 中嵌入 .NET 用户控件

c# - 如何创建具有参数和私有(private)类型返回类型的快速调用委托(delegate),加速 DynamicInvoke