c# 将另一个程序嵌入到窗体中

时间:2022-08-30 21:22:54
winfrom中,程序A中调用程序B,在程序A中获取程序B某窗体的控件属性。也就是说:程序A中的窗体和程序B中的窗体可以交互。怎么实现。最好给个例子。邮箱:619476595@qq.com

22 个解决方案

#2


你的目的如果是你描述那样的话很复杂,可能花费你好几天的时间而没有效果。
如果你只是为了测试想通过一个程序查看另外一个程序里面的内容的话完全不需要要这样。

exe和dll一样都是可以被引用被加载的。你只需要在另外一个程序中实例化这个程序的某个窗体让他show出来就可以了。这样你在主程序中拥有了子程序的完全控制权限。对窗体测试这种很有效。
并且有时候不需要加载所有窗体就能完成你的测试

#3


现在有两个分离的项目,A项目要要融合B项目里面的所有功能。新的项目用TAB页区分A、B项目。并不是说直接调用另一个醒目的exe文件。

#4


API COPYDATA SendMessage

#5


UP  帮楼主顶一下!

#6


见过把 office 系列的 word, excel 放进 winform 控件中的
除非脑子秀逗了, 才会这么样.

#7


两个项目融合。。。难道要重新再写个。。。大侠速度来啊。。。。学习。。。

#8


等两天还没人站出来说话。。。。。。

#9


只是想把a项目和b项目合并了吧?那样直接应用a和b的exe和dll,然后调用不就行了,干嘛那么麻烦

#10


用windows api吧

findwindowsx
 sendmessage
等等

寻找句柄,发送消息

#11


....弱弱的问一句 你有试过直接加引用么?

#12


该回复于2012-09-24 13:03:56被版主删除

#13


嵌入容易,交互难
嵌入容易,稳定难

c# 将另一个程序嵌入到窗体中

#14


在A中引用可以吗 

#15


 可以直接加引用- -..

#16


 可以直接加引用- -..

#17


今天刚学的拿来分享一下:
 panel1.Controls.Clear();
 fullpnl formDemo = new fullpnl();//窗口1
 formDemo.TopLevel = false; 
 formDemo.FormBorderStyle = FormBorderStyle.None;
 panel1.Controls.Add(formDemo);//将f作为panel的一个组件
 formDemo.Show();//将f窗体显示出来 

#18


楼主,可以看看这个
http://www.codeproject.com/Articles/23064/Window-Tabifier

#19


谢谢大家的参与!等。。。。

#20


9楼的。。。我用过直接引用dll,调用过exe文件。就像17楼所说的调用exe可以放在panel中么?

#21


看来是没有,热心人了。过两天结贴

#22


解决方法都是一样的,但是我遇到一个跨线程访问的问题,没解决了。加断点逐步执行时没问题。不加断点就不实现效果。
http://so.csdn.net/so/search/s.do?p=3&q=C%23%E5%B5%8C%E5%85%A5%E7%A8%8B%E5%BA%8F&t=null&domain=&o=null&s=null&u=null

#1


#2


你的目的如果是你描述那样的话很复杂,可能花费你好几天的时间而没有效果。
如果你只是为了测试想通过一个程序查看另外一个程序里面的内容的话完全不需要要这样。

exe和dll一样都是可以被引用被加载的。你只需要在另外一个程序中实例化这个程序的某个窗体让他show出来就可以了。这样你在主程序中拥有了子程序的完全控制权限。对窗体测试这种很有效。
并且有时候不需要加载所有窗体就能完成你的测试

#3


现在有两个分离的项目,A项目要要融合B项目里面的所有功能。新的项目用TAB页区分A、B项目。并不是说直接调用另一个醒目的exe文件。

#4


API COPYDATA SendMessage

#5


UP  帮楼主顶一下!

#6


见过把 office 系列的 word, excel 放进 winform 控件中的
除非脑子秀逗了, 才会这么样.

#7


两个项目融合。。。难道要重新再写个。。。大侠速度来啊。。。。学习。。。

#8


等两天还没人站出来说话。。。。。。

#9


只是想把a项目和b项目合并了吧?那样直接应用a和b的exe和dll,然后调用不就行了,干嘛那么麻烦

#10


用windows api吧

findwindowsx
 sendmessage
等等

寻找句柄,发送消息

#11


....弱弱的问一句 你有试过直接加引用么?

#12


该回复于2012-09-24 13:03:56被版主删除

#13


嵌入容易,交互难
嵌入容易,稳定难

c# 将另一个程序嵌入到窗体中

#14


在A中引用可以吗 

#15


 可以直接加引用- -..

#16


 可以直接加引用- -..

#17


今天刚学的拿来分享一下:
 panel1.Controls.Clear();
 fullpnl formDemo = new fullpnl();//窗口1
 formDemo.TopLevel = false; 
 formDemo.FormBorderStyle = FormBorderStyle.None;
 panel1.Controls.Add(formDemo);//将f作为panel的一个组件
 formDemo.Show();//将f窗体显示出来 

#18


楼主,可以看看这个
http://www.codeproject.com/Articles/23064/Window-Tabifier

#19


谢谢大家的参与!等。。。。

#20


9楼的。。。我用过直接引用dll,调用过exe文件。就像17楼所说的调用exe可以放在panel中么?

#21


看来是没有,热心人了。过两天结贴

#22


解决方法都是一样的,但是我遇到一个跨线程访问的问题,没解决了。加断点逐步执行时没问题。不加断点就不实现效果。
http://so.csdn.net/so/search/s.do?p=3&q=C%23%E5%B5%8C%E5%85%A5%E7%A8%8B%E5%BA%8F&t=null&domain=&o=null&s=null&u=null