C#跨窗体传值

果然C#的跨窗体传值比vb难得多,vb就定义一个全局变量就ok,但是C#还要考虑到命名空间的问题

frmMain要调用LoginUI的两个值,但是在此同时,frmMain又要引用LoginUI,所以说就遇到了一个很麻烦的问题,一直在考虑命名空间的问题,但是其实和命名空间没有太大的关系,我却在命名空间这里墨迹了很长时间

LoginUI引用一下frmMain,然后只需要重写一下frmMain的构造函数即可,非常简单

我们通常的构造函数是这样的:

public frmMain()  
{  
InitializeComponent();  
}  

  

在LoginUI中这样来实例化frmMain(这里我的命名空间和窗体名字都是frmMain):

frmMain.frmMain fm = new frmMain.frmMain(level,user.UserID.ToString());  
fm.Show();  

我们要重写成这样的,然后就可以在这里随便调用Level和ID了,其实返回值不一定是string,可以是任何类型,不过这样也会增加一些必要的耦合

private string Level;  
private string ID;  
public frmMain()  
{  
InitializeComponent();  
}  
public frmMain(string s, string id)  
{  
InitializeComponent();  
this.Level = s;  
this.ID = id;  
}  
posted @ 2018-01-21 16:46  二楼楼长  阅读(208)  评论(0编辑  收藏  举报