问题一:该如何把窗体一里的数据传递到窗体二里面,如何把窗体二里的数据传回到窗体一里? 答:改写窗体二的构造函数,比如,你想传递一个字符串到窗体二,可以把窗体二的构造函数改成: public Form2(string message) 然后,在窗体一里生成Form2对象的时候,把想要传递的字符串通过构造函数传递过去: 如Form2 f2=new Form2("my message"); 如果将来需要用到f2里的一些数据,可以在Form2里设置一些公有属性,然后利用上面的这个f2来读取这些属性的值。 这样的话,窗体二对静态数据的修改也可以在窗体一里被读取到。 ===================================================== 问题二:如何让窗体二通知窗体一去做一些事?比如,我让窗体二的一个公有属性的值变了,如何让窗体一知道这个值已经变了,并做一定的处理?难道得让窗体一一直循环检测这个值吗? 答:不需要循环检测。你可以在窗体一里定义一个委托,用来处理Form2传来的消息。然后把这个委托用问题一的方法,通过构造函数传递给Form2,这样,Form2就可以调用这个委托,使Form1执行相应的函数。 |