Function can';t访问用户控件公共属性

Function can';t访问用户控件公共属性,function,controls,public,Function,Controls,Public,我将VS2008与VB.NET和C一起使用# 我创建了一个简单的自定义用户控件,并向其中添加了一些公共函数 我的问题是,如果我不将用户控件从工具箱拖放到winform上,而是尝试通过代码动态创建一个,那么我就无法访问公共函数和属性 我不明白为什么会有不同,但似乎是这样 如果您能在这件事上提供帮助,我将不胜感激 谢谢您是否使用LoadControl方法加载控件 即 是否使用LoadControl方法加载控件 即 您正在将变量定义为typeUserControl。因此,intellisense只向您

我将VS2008与VB.NET和C一起使用#

我创建了一个简单的自定义用户控件,并向其中添加了一些公共函数

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

我不明白为什么会有不同,但似乎是这样

如果您能在这件事上提供帮助,我将不胜感激


谢谢

您是否使用LoadControl方法加载控件


是否使用LoadControl方法加载控件


您正在将变量定义为type
UserControl
。因此,intellisense只向您显示
UserControl
类的成员,即使它实际上是
myCustomControl
类型


将初始声明更改为
myCustomControl myUC
并且您应该可以开始了。

您正在将变量定义为type
UserControl
。因此,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根本不向我显示该函数,希望这有意义