【发布时间】:2011-01-11 08:58:39
【问题描述】:
我在 VB.NET 和 C# 中都使用 VS2008
我创建了一个简单的自定义用户控件并添加了一些公共功能
我的问题是,如果我不将用户控件从工具箱拖放到 winform 上,而是尝试通过代码动态创建一个 - 我无法访问公共函数和属性
我不明白为什么会有区别,但似乎有区别。
希望对此事有任何帮助
谢谢
【问题讨论】:
我在 VB.NET 和 C# 中都使用 VS2008
我创建了一个简单的自定义用户控件并添加了一些公共功能
我的问题是,如果我不将用户控件从工具箱拖放到 winform 上,而是尝试通过代码动态创建一个 - 我无法访问公共函数和属性
我不明白为什么会有区别,但似乎有区别。
希望对此事有任何帮助
谢谢
【问题讨论】:
您需要将类型转换为 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;
【讨论】:
您将变量定义为UserControl 类型。因此,智能感知只会向您显示 UserControl 类的成员,即使它实际上是 myCustomControl 类型。
将您的初始声明更改为myCustomControl myUC;,您应该一切顺利。
【讨论】:
你是否使用LoadControl方法加载控件?
即。
MyControl ctrl = (MyControl)LoadControl("~/MyControl.ascx");
【讨论】: