2010-01-31 180 views
1

我使用VS2008既VB.NET和C#無法訪問

我創建了一個簡單的自定義用戶控件,並增加了一些社會功能,它

我的問題是,用戶控件的公共屬性如果我不把用戶控件從工具箱拖放到一個winform上,而是嘗試通過代碼動態創建一個 - 我無法訪問公共函數和屬性

我不明白爲什麼在那裏會有所不同,但似乎是。

將您是否使用了LoadControl方法加載控制得到任何幫助就此事

感謝

回答

6

您正在將您的變量定義爲UserControl。因此,智能感知只會向您顯示UserControl課程的成員,即使它實際上是myCustomControl類型的成員。

更改您的初始聲明爲myCustomControl myUC;,你應該很好去。

+0

工程就像一個魅力 - 非常感謝 – Avner 2010-01-31 09:00:53

0

即。

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

我在窗體類例如頂部添加using語句 使用myUserControls 我定義一個變量作爲我的表單類頂部的類型用戶控件,例如 UserControl myUC; 然後在加載事件中,我將其分配給我的自定義用戶控件,如下所示: myUC = new MyUserControls.myCustomControl(); this.controls.add(myUC); myUC.show(); 一切了這一點工作正常 我在表單上看到,但由於某種原因,用戶控制,如果我想訪問公共功能,如: myUC.ShowDetails() 自動完成不顯示我的功能齊全 希望這是有道理的 – Avner 2010-01-31 08:18:27

1

您neeed鍵入施放到用戶控件的類型 然後它 對於防爆:

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;