c# WinForm 窗体之间传值的几种方式(小结)

2020-01-05 09:33:15王旭


class FormB
{
 int orgId;
 public FormB(int orgId)
 {
   this.orgId=orgId;
 }
}

class FormA
{
public void ShowB()
{
  FormB fb=new FormB(5); // 5是要传递过去的值
  fb.Show();
}
}

方式五:把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窗体里的控件了!
}
}

叨叨两句

项目中父窗体向子窗体传值传的是固定值,用的是第一种方式,子窗体向父窗体传值传的是变化的值,用的是第三种方式,第三种方式为我解决了一个大麻烦。

总结

感谢您的阅读,窗体传值有好多种方法,构造参数参数传值、公共属性传值等,各种场景下找到适合需求的最好,希望为小编提出宝贵意见!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持ASPKU。


注:相关教程知识阅读请移步到c#教程频道。