C#多窗体变量的共享

genius_tong 2009-05-01 11:06:54
遇到了这样一个问题:
定义一个类Student,有个函数叫Add()
在主窗体form1中初始化一个Student的实例stu
但程序有时候会用到form2,而且form2要调用stu的Add()函数


这该怎么实现呢?哪位大侠帮一下小弟?谢谢!
...全文
407 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mykelly6 2009-05-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wyj642539749 的回复:]
也可以把stu的访问修饰符设为public,然后实现窗体之间的交互,在form2中调用form1中的stu.
[/Quote]
这个习惯很不好。
顶下8#的
pricks 2009-05-01
  • 打赏
  • 举报
回复
呵呵,这类问题相当容易!

方法有多个:
1:如3楼所示,将窗体作为参数传递进来。
2:设置第三方,由其统筹控制form1和form2。
3:反射加委托。
cau228charm 2009-05-01
  • 打赏
  • 举报
回复
建一个项目,里面包括了student类文件以及form1和form2,将这三个类的命名空间统一,然后把student类中的add函数声明为public,这样就可以在form1中调用form2,在form2中调用stu的add函数了
蓝海D鱼 2009-05-01
  • 打赏
  • 举报
回复
参考


Form[] g_myForms = new Form[]{
new Form1(),new Form2(),new Form3()
}
int g_nFormIndex = 0;

2 下一步时,myForms[g_nFormIndex].Hide(), g_nFormIndex , myForms[g_nFormIndex].show()

3 如果点上一步,就myForms[g_nFormIndex].Hide(), g_nFormIndex--, myForms[g_nFormIndex].show()

这个控制我是放在一个主窗口中控制的
wyj642539749 2009-05-01
  • 打赏
  • 举报
回复
也可以把stu的访问修饰符设为public,然后实现窗体之间的交互,在form2中调用form1中的stu.
蓝海D鱼 2009-05-01
  • 打赏
  • 举报
回复


用ShowDialog()显示最好实现,形式如下:

int tmpValue1 = 0;
int tmpValue2 = 0;
int sum = 0;

from1 f1 new form1();
f1.ShowDialog();
tmpValue1 = f1.Value1;

from2 f2 new form2();
f1.ShowDialog();
tmpValue2 = f2.Value2

sum = tmpValue1+tmpValue2;

Value1和Value2是form1和form2里的public的自己定义的属性.
热学沸腾56 2009-05-01
  • 打赏
  • 举报
回复
把form1的引用传给form2
蓝海D鱼 2009-05-01
  • 打赏
  • 举报
回复

用 form1.stu.Add();
不可以么
赤色火焰 2009-05-01
  • 打赏
  • 举报
回复
把函数变成静态的

111,126

社区成员

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

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

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