问题如下:
我有一个表单,其中包含不同的对象和控件,如:tabpages,textBoxes,timers等.
我还有一个UserControl表单,我将其加载到Form的主要页面之一.
我想在UserControl中编写代码,如何 *** 作主Form的元素属性.
例如:当我单击UserControl表单上的按钮时,它将主Form的timer.Enabled控件设置为true.
解决方法 可以这样做,但让用户控制访问和 *** 作表单不是最干净的方式 – 让用户控件引发事件并让托管表单处理事件会更好. (例如,在处理按钮单击时,表单可以启用/禁用计时器等)这样,如果需要,您可以以不同的方式使用用户控件来处理不同的表单;它使得发生的事情变得更加明显.
更新:
在您的用户控件中,您可以声明一个事件 – 在按钮单击中,您引发事件:
namespace windowsFormsApplication1{ public partial class UserControl1 : UserControl { public event EventHandler OnbuttonClicked; public UserControl1() { InitializeComponent(); } private voID button1_Click(object sender,EventArgs e) { EventHandler handler = OnbuttonClicked; // if something is Listening for this event,let let them kNow it has occurred if (handler != null) { handler(this,new EventArgs()); } } }}
然后在表单中添加用户控件.然后你可以挂钩事件:
namespace windowsFormsApplication1{ public partial class Form1 : Form { public Form1() { InitializeComponent(); userControl11.OnbuttonClicked += userControl11_OnbuttonClicked; } voID userControl11_OnbuttonClicked(object sender,EventArgs e) { MessageBox.Show("got here"); } } }总结
以上是内存溢出为你收集整理的c# – 如何在表单之外到达和设置控件的属性?全部内容,希望文章能够帮你解决c# – 如何在表单之外到达和设置控件的属性?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)