C#中窗体间如何通信 我有两个窗体form1和form2 我想在form2中的textbox中设置一个值,然后form1的timer中的interval就会接到这个值,并以这个值来定时,请问如何实现,谢谢各位的帮忙了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有很多种方法,我一般使用属性来进行窗体之间的传值。WEB开发的话,一般用SESSION进行页面直接的传值。 timer_tick 事件里面判断:1. form2 窗体是否存在。2. 若存在,则获取 string s = form2.GetTextBoxValue(); // 自定义的公开方法3. 然后做后续处理。 窗体通讯? 还是传值?准确表达。我看你要表达的是传值用委托把。委托可以。拜托LS的各位,别人问的是CS的,不是asp.net 顺便给你贴一个链接demohttp://www.2cto.com/kf/201011/77881.html 这个要“捋顺”他们的设计关系——是一个创建另外一个,还是有别的什么创建他们的?编程时保证不凭空增加耦合度,尽量保持它们之间的单一的依赖关系。假设说A依赖于B,那么A就可以了直接调用B,而B要通知A就应该设计为通过依赖倒置的方式去实现事件通知。当这个关系有层次时,会(看起来)更曲折一点,可能需要事件冒泡(传递)才能被A得到。 我们假设你的form2依赖于form1,那么你的textbox抛出textchanged事件(显然人家的textbox不依赖于宿主form,所以人家用事件方式来通知宿主)来通知form2捕获这个事件。然后你的form2判断是否要通知form1,比如当输入数据中有违禁的文字时,如果要通知就直接调用form1的相应属性或者方法就可以了。而假设form2不依赖于form1(也就是说它无法直接“够着”form1),那么form2也只能设计为抛出事件,例如抛出“有违禁文字”事件,你可以在事件的参数的设置上定义详细的报告属性。但是form2够不到form1,它就抛出事件就不用管了。然后捋顺的“谁负责产生的form2”的关系,这个form2的宿主例如叫做control2它负责通知form1。现在就是control2跟form1之间的通讯。再一次是用这个原则来设计通讯关系。 如果你设计中是A依赖于B,B也依赖于A(包括转了一圈间接依赖),很快你就因为要不断地相互侵入设计接口而纠缠不清了。所以面向对象设计基本原则中有一条原则是依赖倒置,就是要保证对象之间是“客户-服务”这类主从关系,而尽量不要相互依赖。服务要想传递参数给客户,应该通过事件方式。虽然服务有数据要通知客户,但是事件的接口定义在服务而不用跑到客户那一端程序里边去定义什么接口。 这时设计到两个窗体之间 的传值问题,首先有两种情况的,第一种情况:从父窗体传值到子窗体的:可以,利用在调用子窗体进行显示的时候进行传递一个参数的。例如:在form1去调用 form2 的时候 form2 f2=new form2("参数的值");f2.show();方法二:在form2当中定义一个pulic的变量pulic string a;然后:form2 f2 =new form2();f2.a="要进行传的值";f2.show();第二种情况:从子窗体传值到父窗体的:可以定义一个事件的方法进行传值在form2当中定义一个事件 event ....然后就在form2当中去触发这个事件,就可以,进行带参数过去了。希望对你有所帮助吧, 要用就有最简单的: 你写一个类,实例化一个静态的对象, 每个窗体都可以往这个对象里写 数据,然后读取就行了, 平时,你可以用面向对象的思维多多分析 .Net的windowForm 框架,很快就可以彻底明白的。 发送exchange邮箱的邮件 ASP.net登陆弹窗问题 求教一个C#数组排序问题 学习C#步骤 字符包括问题 form的shown方法问题 如何写在局域网里访问共享文件夹(必须用户名及密码)? 如何让立方体运动起来? 一个窗体设计的问题,请帮忙解决。 treeview的问题? 两个查询结果相加 这里用多线程可以吗,应如何写?
WEB开发的话,一般用SESSION进行页面直接的传值。
2. 若存在,则获取 string s = form2.GetTextBoxValue(); // 自定义的公开方法
3. 然后做后续处理。
准确表达。我看你要表达的是传值
用委托把。委托可以。
拜托LS的各位,别人问的是CS的,不是asp.net
顺便给你贴一个链接demo
http://www.2cto.com/kf/201011/77881.html
第一种情况:
从父窗体传值到子窗体的:
可以,利用在调用子窗体进行显示的时候进行传递一个参数的。
例如:
在form1去调用 form2 的时候
form2 f2=new form2("参数的值");
f2.show();方法二:
在form2当中定义一个pulic的变量
pulic string a;然后:
form2 f2 =new form2();
f2.a="要进行传的值";
f2.show();第二种情况:
从子窗体传值到父窗体的:可以定义一个事件的方法进行传值
在form2当中定义一个事件
event ....
然后就在form2当中去触发这个事件,就可以,进行带参数过去了。希望对你有所帮助吧,
你写一个类,实例化一个静态的对象, 每个窗体都可以往这个对象里写 数据,然后读取就行了,
平时,你可以用面向对象的思维多多分析 .Net的windowForm 框架,很快就可以彻底明白的。