如何在c#windows应用程序中的表单之间传递值?

Anu*_*uya 2 c#

我有两个表单A和B.表单A是应用程序的默认启动表单.我在表单A中做了一些事情然后我想要并行运行我的表单B,然后将表单B中的参数传递给表单B中的方法.

怎么样 ?

Jon*_*eet 12

Ian给出了一些示例代码,但我想提出更广泛的观点:

UI类只是类.

如果值不是用户界面的一部分,如何将值从一个对象传递给另一个对象?您将从一个引用到另一个,并调用方法或设置属性.用户界面对象也是如此.

我提到这个是因为它出现了很多东西.每当你问自己:"我如何用表格做X?" 尝试问自己同样的问题,但用普通的老班.通常答案是完全相同的.

当然,用户界面类有一些差异 - 尤其是线程 - 但是对于很多情况,如果你把它们看作普通的类,它确实很有帮助.


Ian*_*Ian 6

FormA应该为FormB构造/保存一个实例.显然,FormB上的方法需要公开,将CallMethodOnFormB中使用的对象类型也改为正确的类型.

public class FormA
{
   private FormB fB;

   public void CreateFormB()
   { 
      // This shows the form in parallel.
      this.fB = new FormB();
      this.fB.Show();
   }

   public void CallMethodOnFormB(object value)
   {
      this.fB.RunSomeFunction(value);
   }
}
Run Code Online (Sandbox Code Playgroud)