C#两个窗体控件的互相控制(一个解决方案下的两个Application的Form,不同命名空间)

就如,我在一个解决方案里,建了两个Application,每个Application下有个Form,我在form1有三个按钮 Start、Stop、Reset,form2也有同样的三个按钮,Start、Stop、Reset,在form1的Start按钮事件中,当我按下Start时,stop、reset的enable属性变为True(初始化时为false),同时Form2的stop,reset的enable属性也变为true(初始化时也为false)

忘高手指点

第1个回答  2012-01-16
用单一模式:编写多一个类来记录
Public Form form1=null;//初始化的时候赋值给这个变量
Public Form form2=null;
这个就可以实现了
当然也可以按上面所说用delegate
但两个窗体必须有关系相连才行
第2个回答  2012-01-16
你把变量做成公有的。
第3个回答  2012-01-16
它们之间建立引用关系,然后在form1的start()中调用app2中的一个函数,在这个函数中设置form2的按钮属性。追问

怎么调用 能写详细点吗 附代码的

追答

在app1中添加app2的引用,在app2中定义一个函数,如:causeApp1(),在函数里改变form2的按钮属性。然后在app1的start按钮事件里,调用causeApp1函数

追问

你说的是定义属性吧 我用了 不知道为什么也没有实现

追答

定义属性?我没这个意思啊...
在app2的那个函数里面把你要进行的操作写进去,就这样。

本回答被网友采纳
第4个回答  2012-01-17
你是两个Application? 那应该不行额,可以打包为DLL文件后再调用。
第5个回答  2012-01-16
用委托和事件回调函数..轻松搞定
delegate和invoke

...控制另一个窗体的timer(是在一个解决方案下的两个项目的分别的Form1...
在解决方案下就好办了,你在Form1所在项目添加引用Form2所在的项目,使Form2依赖于Form1,给你写个Demo吧,如Form1所在项目为WindowsFormsApplication1,其中有Form1,Form1上有个Textbox1,Form2所在项目为WindowsFormsApplication2,其中有Form1,Form1上有个label,timer,label显示时间timer1.Interval=10...

C#窗体 同一个工程下2个namespace怎样互相调用呢
如果是在一个项目下但是namespace不同的话:添加using引用你那个namespace的名字。如果是同一个解决方案,不同的项目:解决方案管理器--右击“引用”--添加引用--选择“项目”选项卡,选中你的项目,确定就可以引用该项目的内容了。

C#中,不在同一命名空间的两个类怎么互相调用?
在代码开始位置添加:using 命名空间,然后就可以直接调用类中的方法或属性 直接使用:命名空间.类.方法或属性 直接调用

c#添加现有窗体(带操作代码和部分资源文件),命名空间不同,如何进行添加...
右键解决方案,添加项目,选择现有项目,最好把命名空间名称统一起来,这样才不会出现问题。或者右键项目,选择添加现有文件,命名空间一样也要改(最好改一下)。

...Threading命名空间,一个在System.Windows.Forms
C#有三个timer类,还有个在timers.time,只有forms是在主进程里运行tick事件,其他两个都是线程池调度

C#中两个动态链接库的命名空间相同时可否同时使用
命名空间:可以理解成文件夹 类:可以理解成文件 类1,类2都属于同一个namespace是可以的。也就是两个文件可以存在于同一个文件夹里面。 但是同一个文件夹里面不可以存在同名的文件。所以class Y,是不可以的。

C# .NET 一个解决方案中的类,调用另外一个解决方案的项目,怎么弄?
一、可以调用该类的dll文件,然后using命名空间 二、如果是解决方案中其他类,可以添加引用,项目,再using命名空间

C# 中,已经新建了一个窗体放在一个文件中,名为Form2,现在又在C#中新建...
你窗体上的命名空间不对的,虽然你设置了当前项目为启动项,但是现在的这个项目文件中的那个form2还保留着原来的命名空间所以不会执行。

两个C#项目之间怎样传值
修改外在标识另一个自动获取例如:数据库,文件,COM+等然后另一个自动获取.COM+组件可以提供一块共享内存来供多个程序共同使用 或者利用 socket 等进行 传输.一方发送,一方侦听并接收 如果你是二个项目的话,应该是用上面的方法 如果你是一个项目的二个窗体之间的话,那就用public方法吧 ...

c#中的mainwindow控件在哪个命名空间中
c#中的窗体控件的名字是Form 楼主可以这样试试 Form Form1=new Form();Form1().Show();Form这个控件位于 System.Windows.Forms 这个命名空间中

相似回答