1
A
回答
2
你最好的辦法就是讓類似的方式,如下面的用戶控件的公共屬性:
public TextBox getMyTextBox()
{
return this.myTextBox;
}
這將給予控制作爲主網頁訪問整個。如果你只得到一個值或兩個興趣再做到這一點:
public String getMyTextBoxValue()
{
return this.myTextBox.Text;
}
根據您希望能夠從母版頁用戶控件訪問什麼,你可以傳遞給一個參考創建用戶控制(如在構造函數的參數)時
private object needObject;
public MyUserControl(object objectToReference)
{
this.needObject = objectToReference;
}
這樣,您必須將對象的引用對象。如果您正在動態創建控件,這將很容易。如果你希望他們在你的表單設計從一開始就做一個單獨的方法來爲你設置參考。
public void setParentReference(object objectToReference)
{
this.needObject = objectToReference;
}
在主頁面,您可以簡單地只要叫上你給用戶控件傳遞您所需要的任何對象這個方法(因爲它不是一個原始的,如果它是一個原始值,然後使用ref
傳遞作爲參考因爲基元默認發送值)作爲參數,並且從usercontrol的那一點將有權訪問該對象。
當然這僅僅是存儲引用一個簡單對象的例子(你可以在你想分享或任何其他值一些類通過。)
如果你想訪問你的用戶控件中的父那麼你應該記住,Control.Parent
可以讓你訪問當前控件的父項。
由於UserControl
類繼承ContentControl
,繼而從Control
繼承,你可以簡單地做到這一點。
object parentReference = this.Parent;
這是一個更好的做法是在這裏使用object
,然後檢查它是否是一個typeof
形式,因爲如果是在一個容器中,然後將容器將被保存,它可能會導致異常,如果變量類型爲Form
。
您也可以使用它來獲取ParentForm。
Form parentReference = this.ParentForm;
但要記住的事情是,如果你剛剛創造了這個動態控制,但尚未將其添加到任何形式或控制兒童列出父和ParentForm將null
所以請確保您驗證對於null
之前使用它或試圖把它作爲東西。
然後,您可以使用此操作來使用表單中的任何屬性。我假設你的主窗體被稱爲Form1。(public partial class Form1 : Form
)
((Form1)parentReference).somePublicProperty = someValue;
希望它爲您清除它。
相關問題
- 1. 如何在用戶控件中訪問主頁面控件值
- 2. 在Web用戶控件上訪問主頁面控件
- 3. 在子級用戶控件中訪問父頁面控件
- 4. 從網頁用戶控件訪問頁面內的html控件
- 5. 用戶控件上的訪問控制
- 6. 從用戶控制頁面訪問MainWindow的控件。 WPF C#
- 7. ASP.NET用戶控件 - 訪問AddedControl中的主頁面對象
- 8. 在母版頁的內容頁面中控制用戶控件
- 9. 訪問用戶控件的子控件
- 10. 頁面上與母版頁從用戶控制訪問控制
- 11. 訪問在用戶控制代碼後面的aspx頁面中使用的用戶控件ID
- 12. 用主控頁面寫的用戶控件引發的事件
- 13. C#用戶控件 - 從用戶控件中訪問控件屬性
- 14. 如何使用主控從asp:content頁面訪問masterpage上的用戶控件?
- 15. 如何從用戶控件引用主頁面內容控件?
- 16. 在用戶控件中訪問主頁UI
- 17. 用戶控件內的中繼器內的訪問控制
- 18. 從用戶控制/類/頁訪問主頁面公共方法
- 19. 從用戶控件訪問主頁面公共變量
- 20. 如何在用戶控件中訪問子控件的HtmlControl.Style?
- 21. 更新點擊客戶端頁面控制上的主頁面控件的值?
- 22. 在WPF中訪問用戶控件
- 23. 用戶控件頁面中的文件上傳控件
- 24. 訪問用戶控件的aspx值
- 25. 用戶控制主頁
- 26. 在用戶控制中訪問父頁面的屬性
- 27. 主用戶控件
- 28. 用戶控件引用主要控件
- 29. 訪問用戶控件從後面
- 30. 從父頁面訪問用戶控件中的SQLDatasource。
感謝Daniel Wardin先生的回答。它的形成方式非常感謝。 – Anjana 2013-02-24 05:52:31
不客氣Anjana! – 2013-02-24 12:32:37