日期:2014-05-18  浏览次数:21030 次

(50分)高手请进.怎么实现在一个FORM中控制另一个FORM的控件,比如TIMER控件?
(50分)怎么实现在一个FORM中控制另一个FORM的控件,比如TIMER控件?
如下代码不行:
//   Form1   frm11=new   Form1   ();
frm11.timer.enable=true;


------解决方案--------------------
子窗口要控制主窗口的空间的话,重写子窗口构造函数,把主窗口传递过去
------解决方案--------------------
多窗体传值问题
http://blog.csdn.net/zxliujason/archive/2007/08/04/1725645.aspx
------解决方案--------------------
see:
http://topic.csdn.net/t/20041027/19/3497195.html

form1:


public TextBox txtTest;

button1_Click()
{
Form2 frm2=new Form2(this);
frm2.Show();
}

-------------------
form2:

private Form1 frm1;

public Form2(Form1 frm) //构造函数
{
frm1=frm;
}

button1_Click()
{
//改变Form1.txtTest.Text
frm1.txtTest.Text= "ok ";
}
------解决方案--------------------
举个例子
比如说用委托

那就在Form2中你需要操作timer的地方触发一个事件
在Form1中监视这个事件


public delegate void ProcessTimer();
public event ProcessTimer TimerEvent;

在Form2中
if (TimerEvent != null)
{
TimerEvent();
}

在Form1中
Form2 f = new Form2();
f.TimerEvent += new ProcessTimer(processTimer);
f.ShowDialog();

private void processTimer()
{
//这里就可以操作Timer了
}