▲▲▲▲▲ 主窗口 子窗口 之间的高级问题 ▲▲▲▲▲ 1.Form[] frm=form1.MdiParent.MdiChildren;2.把其他窗口的事件下的代码写一个方法,把这个方法设为public,这样你就可以直接调用此方法,和触发事件达到相同的效果。不知道你懂了没? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 通过主窗体的OwnedForms属性得到主窗体的所有子窗体,在想法判断类型为你要的窗体,转换类型,得到想要的窗体对象,即可 TO: rijing2000(一直在努力)如果这样子调用该方法,它是在form2执行的,不是在form1执行。应该触发form1的事件才能在form1执行吧 to: Question159635759(〖〓ЙЯ‖浮云〓〗) 你说的很对,但我的目的不也达到了吗?你触发此事件会调用该方法,与你直接调用有什么区别吗?当然,这并不是万能的! 如果不是mdi窗体的话,把窗体声明为全局的量,然后调用 在c#中可以使用 委托来实现事件的触发,事件本身也是一个委托。因而可以通过SomeEvent(this, e)的方法触发事件。 请参考:http://blog.csdn.net/lane_cn/archive/2004/11/04/166901.aspx 又是窗体,讲了好多遍了设Form1,Form2,Form3,Form1为主在From1中:Form2 fm2=new Form2();fm2.MdiParent=this;fm2.Show();Form3 fm3=new Form3();fm3.MdiParent=this;fm3.Show();在Form2中:Form3 fm3=(Form3)this.MdiParent.MdiChildren[1];fm3.textBox1.Text="111111111";关键是找到Form3在子窗体中的index(此例为1:MdiChildren[1]),这也不难,可以通过foreach遍历子窗体来找。Form1 fm1=(Form1)this.MdiParent;int iindex=0;foreach(Form fm in fm1.MdiChildren){ if(fm.Name=="Form3") { break; } iindex++;}Form3 fm3=(Form3)this.MdiParent.MdiChildren[iindex];fm3.textBox1.Text="111111111";前题是form3的textBox1为public的。 在两个字窗口相互弄一个关于另一个窗口的公有变量或属性,在主窗口new完之后,就把那个变量赋于new出来的窗口,不就可以相互操作了吗?--不过,要外理好两个窗口的关闭信息,不能让访问关闭了的子窗口.也可以像上面说的,用消息挂载,不过,最好在主窗口里挂,因为,如果你在另外一个挂的话,同样也面临着怎么得到本窗口内容的问题.除非,自己定义新的事件,把需要的内容传过去(如果这样做的话,可以不关心窗口的关闭,一个关闭了的窗口无法再引发事件了,虽然麻烦,不过还是比较好的,可以同时更改多个窗口,而每个窗口只需处理好自己的内容就行了(如果先写一个基类,再继承的话更好),不用在一个窗口里处理N个窗口的内容); lxrxyz(无忧十年) 讲的有道理关键是找到Form3在子窗体中的index(此例为1:MdiChildren[1]),这也不难,可以通过foreach遍历子窗体来找。Form1 fm1=(Form1)this.MdiParent;int iindex=0;foreach(Form fm in fm1.MdiChildren){ if(fm.Name=="Form3") { break; } iindex++;}Form3 fm3=(Form3)this.MdiParent.MdiChildren[iindex];fm3.textBox1.Text="111111111"; 1.Form[] frm=form1.MdiParent.MdiChildren;2.参考http://blog.csdn.net/phoubes/archive/2005/01/21/262420.aspx 类似的问题http://blog.csdn.net/zhzuo/archive/2004/04.aspx .Net3.5 和4.0竟如此区别? 文件,文件夹的增删改查 请教关于float型运算的精度问题 字符串转化为 ascii码 高手指教了 哪里可以下载 word 9.0.dll?急 关于winform程序的UI架构问题? 如何进行快速数据转移? 求助怎样处理强命名验证失败问题???? 冥思苦想,如何预览truetype字体? 当用VS.Net产生一个C#项目的时候,就会自动产生一些代码?有没有办法来改变这些产生代码的模板? 求 sharpdevelope 完整代码我感觉下的不是完整的代码! 如何获得指定进程的cpu使用率,硬盘空间大小等系统参数呀
如果这样子调用该方法,它是在form2执行的,不是在form1执行。
应该触发form1的事件才能在form1执行吧
你说的很对,但我的目的不也达到了吗?你触发此事件会调用该方法,与你直接调用有什么区别吗?
当然,这并不是万能的!
http://blog.csdn.net/lane_cn/archive/2004/11/04/166901.aspx
设Form1,Form2,Form3,Form1为主
在From1中:
Form2 fm2=new Form2();
fm2.MdiParent=this;
fm2.Show();
Form3 fm3=new Form3();
fm3.MdiParent=this;
fm3.Show();
在Form2中:
Form3 fm3=(Form3)this.MdiParent.MdiChildren[1];
fm3.textBox1.Text="111111111";
关键是找到Form3在子窗体中的index(此例为1:MdiChildren[1]),这也不难,可以通过foreach遍历子窗体来找。
Form1 fm1=(Form1)this.MdiParent;
int iindex=0;
foreach(Form fm in fm1.MdiChildren)
{
if(fm.Name=="Form3")
{
break;
}
iindex++;
}
Form3 fm3=(Form3)this.MdiParent.MdiChildren[iindex];
fm3.textBox1.Text="111111111";
前题是form3的textBox1为public的。
关键是找到Form3在子窗体中的index(此例为1:MdiChildren[1]),这也不难,可以通过foreach遍历子窗体来找。
Form1 fm1=(Form1)this.MdiParent;
int iindex=0;
foreach(Form fm in fm1.MdiChildren)
{
if(fm.Name=="Form3")
{
break;
}
iindex++;
}
Form3 fm3=(Form3)this.MdiParent.MdiChildren[iindex];
fm3.textBox1.Text="111111111";
http://blog.csdn.net/zhzuo/archive/2004/04.aspx