我在VS2005 C# .net framework2.0下一个解决方案中创建了3个项目,分别是:登录,A子系统,B子系统.
现在我想通过登录项目控制进入A系统或B系统,然后A系统或B系统还能够注销返回登录.
问题是,现在我能通过在登录中添加对A和B的引用,并且创建新线程实现从登录到A或B子系统的操作.
但是当从A或B注销返回登录是却怎么也不行了,我想在A和B中添加对登录的引用告诉我不可以循环引用,这样也就不能在A和B中用同样的创建线程方式来实现返回登录窗口.
我试了传递参数的方式,但是告诉我Login窗口不是该线程创建的不能访问(类似这样的提示,具体的忘记了)
到了这里我就不会弄了,麻烦各位高手指点小弟一下,不胜感激.
现在我想通过登录项目控制进入A系统或B系统,然后A系统或B系统还能够注销返回登录.
问题是,现在我能通过在登录中添加对A和B的引用,并且创建新线程实现从登录到A或B子系统的操作.
但是当从A或B注销返回登录是却怎么也不行了,我想在A和B中添加对登录的引用告诉我不可以循环引用,这样也就不能在A和B中用同样的创建线程方式来实现返回登录窗口.
我试了传递参数的方式,但是告诉我Login窗口不是该线程创建的不能访问(类似这样的提示,具体的忘记了)
到了这里我就不会弄了,麻烦各位高手指点小弟一下,不胜感激.
登陆按钮:
private void button1_Click(object sender, EventArgs e)
{
//加载项目A的程序集信息(注意文件的正确路径)
System.Reflection.Assembly assmbly = System.Reflection.Assembly.LoadFile(System.AppDomain.CurrentDomain.BaseDirectory + "\\WindowsFormsApplication2.exe");
this.Hide();
//反射,创建A项目的开始窗体。
Form form = (Form)assmbly.CreateInstance("WindowsFormsApplication2.Form1");
//注册事件,使得窗体关闭时候显示登录窗体。因此A项目的注销只需要关闭A项目的Form1即可!
form.FormClosed += new FormClosedEventHandler(form_FormClosed);
form.Show();
} void form_FormClosed(object sender, FormClosedEventArgs e)
{
this.Show();
}
注意把A系统的exe文件拷贝到登陆debug/debug底下,上边的代码测试通过!
其实可以直接创建一个A系统MainFrm的实例来进入.
然后用2楼的事件//注册事件,使得窗体关闭时候显示登录窗体。因此A项目的注销只需要关闭A项目的Form1即可!
form.FormClosed += new FormClosedEventHandler(form_FormClosed); 可以完成返回登录.但是上面大家都说用ShowDialog,我这里用Show也是没有问题的啊,有什么不同么?麻烦大家再给小弟解释一下...