果然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; }