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