1

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

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

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

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

将不胜感激有关此事的任何帮助

谢谢

4

3 回答 3

6

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

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

于 2010-01-31T08:43:02.907 回答
1

您需要将类型转换为 usercontrol 类型,然后它适用于 Ex :

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;
于 2010-10-08T06:10:52.450 回答
0

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

IE。

MyControl ctrl = (MyControl)LoadControl("~/MyControl.ascx"); 
于 2010-01-31T07:56:15.523 回答