C# WinForm窗体间传值(转)
窗体传值的几种方法:1.使用公共类
在项目中建一UserHelper类,里面都是静态成员
class UserHelper
{
public static int id;
public static string name;
.........
}
各窗体可以把里面的id,name当作全局变量来用.
A窗体:
UserHelper.id=10;
B窗体:
textBox1.Text=UserHelper.id.ToString();
2.窗体添加静态属性
给窗体添加一个public static 的属性,实际上和上面的方法是一样的.
访问方法如下:
Form1.StuId=5;
3.使用构造函数传递一个数值
class FormB
{
int orgId;
public FormB(int orgId)
{
this.orgId=orgId;
}
}
class FormA
{
public void ShowB()
{
FormB fb=new FormB(5); // 5是要传递过去的值
fb.Show();
}
}
4.把A窗体整个传递给B窗体
有些时候需要在B窗体里对A窗体的某个控件值做修改,并且需要立即改变A窗体的控件显示,本方法适合这种情况。
修改FormA,把要在B里处理的控件的可访问性(Modifiers)设为public,然后按下面的方式处理
class FormA
{
public void ShowB()
{
FormB fb=new FormB(this); // 在构造函数里把A窗体本身传过去
fb.Show();
}
}
class FormB
{
FormA fm; //B窗体增加一个FormA类型的成员
public FormB(FormA fm) //添加一个带参数的构造方法,参数类型是
FormA
{
this.fm=fm;
}
protected void Method1()
{
fm.txtName.Text="Haha!"; //在这儿可以直接操作A窗体里的控件了!
}
}
--reply by CSDN Study Trial V1.0.1 (starts_2000) --------------------编程问答-------------------- 最后一个这样是不是好点
FormB fb=new FormB();
fb.Owner = this;
fb.Show();
--------------------编程问答-------------------- 友情顶起&&接分 --------------------编程问答-------------------- 这是分享吧,支持一下。 --------------------编程问答-------------------- 第一种: 可以不用静态的 写一个 方法 直接 RETURN UserHelper的对象就OK了
第二种:静态属性就不用说了
第三种:构造函数,在NEW 对象时把 值作为参数传入就OK了,
第四种:就是把 对象作为参数 传入 (类是引用类型当然可以);
第五种:委托、事件 类似于第四种
第六种: 单立模式 --------------------编程问答-------------------- 那窗体之间怎么传方法 --------------------编程问答-------------------- 建议你声明一个 共用变量
再引用即可 --------------------编程问答-------------------- 每天回帖即可获得10分可用分! --------------------编程问答-------------------- 不错,支持。 --------------------编程问答-------------------- 支持,顶一下! --------------------编程问答-------------------- 挺好
挺好
学习
--------------------编程问答-------------------- 晕!
你做个窗体,难道自己从来没有实例化两个来测试吗?我以为很多人已经知道,对于对象要用2个以上的独立的对象来测试,而不是只用一个。
如果你实例化两个窗体实例,分别把数据传递给另外两个窗体实例,什么“公共啊、静态啊、单独啊”这类词儿用起来就会很尴尬,这些词儿如果不是因为业务逻辑就是这样规定的,那么可不是随便用在编程上的,除非你对于实例化对象从来不知道需要考虑2个以上来测试。 --------------------编程问答-------------------- sp1234大哥说的啥意识?看不懂啊
--------------------编程问答-------------------- 窗体之间的传值干嘛搞得那么复杂呢?New那么多的实例出来干嘛啊?
http://blog.csdn.net/chenpeng0118/article/details/6858953 --------------------编程问答-------------------- 杀猪的方法有很多种 ,,, --------------------编程问答-------------------- --------------------编程问答-------------------- 学习中测试
测试中学习
补充:.NET技术 , C#