MDI窗体求助

fang521ke 2012-03-06 09:06:05
开发环境VS2005
有两个项目
项目1:中有个窗体A,然后有个类B,B类中有个PUBLIC方法ShowFormA(),可以将窗体A实例化,然后SHOW出来

项目2:有个窗体B(MDI窗体),窗体B有个按钮,按钮事件实例化项目1的类B,然后调用类B的ShowFormA(),弹出一个窗体;


我想在按钮事件中捕获弹出的窗体A,获取A的实例,然后将A设置为窗体B的子窗体


这种想法是否可以实现?
...全文
135 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fang521ke 2012-03-07
  • 打赏
  • 举报
回复
[Quote=引用楼主 fang521ke 的回复:]
开发环境VS2005
有两个项目
项目1:中有个窗体A,然后有个类B,B类中有个PUBLIC方法ShowFormA(),可以将窗体A实例化,然后SHOW出来

项目2:有个窗体B(MDI窗体),窗体B有个按钮,按钮事件实例化项目1的类B,然后调用类B的ShowFormA(),弹出一个窗体;


我想在按钮事件中捕获弹出的窗体A,获取A的实例,然后将A设置为窗体B的子窗体



这……
[/Quote]


那个方法返回值是VOID,所以没有窗体返回值给我,这样不行,这样可以的话。。也不至于这么憋屈了
xnlm2005 2012-03-06
  • 打赏
  • 举报
回复
第一步:项目1中ClassB这样写:
public class ClassB
{
public Form ShowFormA()
{
FormA formA = new FormA();
return formA;
}
}

注意类中引用这个“using System.Windows.Forms;”
生成一下。
第二步:在项目2中引用项目1
第三步:其中按钮点击事件这样:
private void 显示窗体A_Click(object sender, EventArgs e)
{
WindowsFormsApplication3.ClassB classB = new WindowsFormsApplication3.ClassB();
Form formA = classB.ShowFormA();
formA.MdiParent = this;
formA.Show();
}

第四步:将项目2设为启动项。
muyi66 2012-03-06
  • 打赏
  • 举报
回复
当然可以。

在类B的那个ShowFormA方法里返回新建窗体A的引用,然后由窗体B保存该引用。这样你就能在项目2里操作窗体A了。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧