一个项目中的其中一个窗体代码 其中有一个窗体是LoginFrm,在另外一个窗体中出现了如下代码,
public partial class MainFrm : Form
    {
        //传递参数
        LoginFrm loginfrm;        public MainFrm(LoginFrm login)
        {
            loginfrm= login;
            InitializeComponent();
        }
我就是不明白LoginFrm loginfrm;传递过来有什么用;
这个是Program.cs中的代码
 static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            LoginFrm login = new LoginFrm();
            login.ShowDialog();            if (login.eachfrm == true)
            {
                Application.Run(new MainFrm(login));
            }
        }
    }

解决方案 »

  1.   

    在MainFrm中可以访问LoginFrm 实例的公共成员
      

  2.   

    只要是public的字段、属性、方法都可以吗?
      

  3.   

    那为什么不在这个窗体中实例化一下
    LoginFrm login = new LoginFrm();呢?这样做不是也一样能够使用公共成员吗?
      

  4.   

    这就不是你最初的LoginFrm 实例login 了;是同一类型LoginFrm 的另一实例。
    你可以这样做,但要明白自己要做的是什么。从你的程序来看,你不应该这么做。程序最开始LoginFrm login = new LoginFrm();然后showdialog();
    从名字来看是登录。
    可能要把登录时的用户名传给主窗体MainFrm 所以login 要作为参数传递给MainFrm 
      

  5.   

    这就不是你最初的LoginFrm 实例login 了;是同一类型LoginFrm 的另一实例。
    你可以这样做,但要明白自己要做的是什么

    你说的我不太明白
      

  6.   

    忽视程序最开始LoginFrm login = new LoginFrm();然后showdialog();
    从名字来看是登录。
    可能要把登录时的用户名传给主窗体MainFrm 所以login 要作为参数传递给MainFrm  
      

  7.   

    static void Main()
      {
      Application.EnableVisualStyles();
      Application.SetCompatibleTextRenderingDefault(false);
      LoginFrm login = new LoginFrm();
      login.ShowDialog();  if (login.eachfrm == true)
      {
      Application.Run(new MainFrm(login));
      }
      }
    main中已初始化了loginfrm的实例,MainForm中再初始化就浪费资源了,呵呵。传过去是最好了。