Function can';t访问用户控件公共属性
我将VS2008与VB.NET和C一起使用# 我创建了一个简单的自定义用户控件,并向其中添加了一些公共函数 我的问题是,如果我不将用户控件从工具箱拖放到winform上,而是尝试通过代码动态创建一个,那么我就无法访问公共函数和属性 我不明白为什么会有不同,但似乎是这样 如果您能在这件事上提供帮助,我将不胜感激Function can';t访问用户控件公共属性,function,controls,public,Function,Controls,Public,我将VS2008与VB.NET和C一起使用# 我创建了一个简单的自定义用户控件,并向其中添加了一些公共函数 我的问题是,如果我不将用户控件从工具箱拖放到winform上,而是尝试通过代码动态创建一个,那么我就无法访问公共函数和属性 我不明白为什么会有不同,但似乎是这样 如果您能在这件事上提供帮助,我将不胜感激 谢谢您是否使用LoadControl方法加载控件 即 是否使用LoadControl方法加载控件 即 您正在将变量定义为typeUserControl。因此,intellisense只向您
谢谢您是否使用LoadControl方法加载控件 即
是否使用LoadControl方法加载控件 即
您正在将变量定义为type
UserControl
。因此,intellisense只向您显示UserControl
类的成员,即使它实际上是myCustomControl
类型
将初始声明更改为
myCustomControl myUC
并且您应该可以开始了。您正在将变量定义为typeUserControl
。因此,intellisense只向您显示UserControl
类的成员,即使它实际上是myCustomControl
类型
将初始声明更改为
myCustomControl myUC代码>,您应该可以开始了。您需要将类型转换为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类型
那就行了
例如:
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;
我在表单类的顶部添加了一个using语句,例如使用myUserControls,我在表单类的顶部定义了一个变量作为类型用户控件,例如UserControlMyUC;然后在load事件中,我将其分配给自定义usercontrol,如下所示:myUC=new MyUserControls.myCustomControl();this.controls.add(myUC);myUC.show();到目前为止,一切都很好,我在表单上看到了用户控件,但出于某种原因,如果我想访问公共函数,如:myUC.ShowDetails()autocomplete根本没有向我显示函数,希望这能让senseI在表单类的顶部添加一个using语句,例如使用myUserControls,我在表单类的顶部定义一个变量作为类型用户控件,例如UserControl myUC;然后在load事件中,我将其分配给自定义usercontrol,如下所示:myUC=new MyUserControls.myCustomControl();this.controls.add(myUC);myUC.show();到目前为止,一切都很好,我在表单上看到了用户控件,但出于某种原因,如果我想访问一个公共函数,如:myUC.ShowDetails(),autocomplete根本不向我显示该函数,希望这有意义