无法访问用户控制公共属性

Posted

技术标签:

【中文标题】无法访问用户控制公共属性【英文标题】:can't access user control public properties 【发布时间】:2011-01-11 08:58:39 【问题描述】:

我在 VB.NET 和 C# 中都使用 VS2008

我创建了一个简单的自定义用户控件并添加了一些公共功能

我的问题是,如果我不将用户控件从工具箱拖放到 winform 上,而是尝试通过代码动态创建一个 - 我无法访问公共函数和属性

我不明白为什么会有区别,但似乎有区别。

希望对此事有任何帮助

谢谢

【问题讨论】:

【参考方案1】:

您需要将类型转换为 usercontrol 类型 然后它工作 例如:

public partial class uctls_contact_uctlCompanyViewContacts : System.Web.UI.UserControl

public bool ReadOnlyMode
    
        get;
        set;
    


UserControl uctlCompanyViewContacts = (UserControl)Page.LoadControl("uctlCompanyViewContacts.ascx");
uctlCompanyViewContacts.ID = "uctlCompanyViewContacts";
panelCompanyViewContacts.Controls.Add(uctlCompanyViewContacts);
((uctls_contact_uctlCompanyViewContacts)uctlCompanyViewContacts).ReadOnlyMode = true;

【讨论】:

【参考方案2】:

您将变量定义为UserControl 类型。因此,智能感知只会向您显示 UserControl 类的成员,即使它实际上是 myCustomControl 类型。

将您的初始声明更改为myCustomControl myUC;,您应该一切顺利。

【讨论】:

【参考方案3】:

你是否使用LoadControl方法加载控件?

即。

MyControl ctrl = (MyControl)LoadControl("~/MyControl.ascx"); 

【讨论】:

我在表单类的顶部添加了一条 using 语句,例如使用 myUserControls 我在表单类的顶部定义了一个变量作为类型用户控件,例如 UserControl myUC;然后在加载事件中,我将它分配给我的自定义用户控件,例如 myUC = new MyUserControls.myCustomControl(); this.controls.add(myUC); myUC.show();到目前为止一切正常,我在表单上看到了用户控件,但由于某种原因,如果我想访问一个公共函数,例如:myUC.ShowDetails() 自动完成根本没有向我显示该函数希望这是有道理的

以上是关于无法访问用户控制公共属性的主要内容,如果未能解决你的问题,请参考以下文章

无法访问类的公共属性

苹果Mac 无法打开文档Word : 用户没有访问权限

无法访问对象属性,即使它显示在控制台日志中

在AWS实例中无法访问弹性搜索

如何从 UserControl 访问 WPF 页面中的公共变量?

奇葩的电脑故障