не могу получить доступ к публичным свойствам пользовательского элемента управления - PullRequest
1 голос
/ 31 января 2010

Я использую VS2008 с VB.NET и C #

Я создал простой пользовательский элемент управления и добавил в него некоторые общедоступные функции

Моя проблема в том, что если я не перетаскиваю пользовательский элемент управления из панели инструментов в winform, но вместо этого я пытаюсь создать его динамически с помощью кода - я не могу получить доступ к открытым функциям и свойствам

Я не могу понять, почему будет разница, но кажется, что есть.

был бы признателен за любую помощь по этому вопросу

спасибо

Ответы [ 3 ]

6 голосов
/ 31 января 2010

Вы определяете свою переменную как тип UserControl. Таким образом, intellisense покажет вам только членов класса UserControl, даже если он на самом деле имеет тип myCustomControl.

Измените исходную декларацию на myCustomControl myUC;, и все будет хорошо.

1 голос
/ 08 октября 2010

Вам нужно набрать приведение к типу 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;
0 голосов
/ 31 января 2010

Используете ли вы метод LoadControl для загрузки элемента управления?

т.

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