1 请问如何给一个应用程序项目中main方法传参? 在什么地方触发的这个Main()函数呢?
如果哪位大虾愿意帮忙 最好详细解释一下C#应用程序的启动过程 另外再问一句,2 如果我想从一个主画面跳到任意一个字画面,同过点击主画面的按钮打开不同的Form 请问这如何实现
(以前都是通过自定义组件然后控制visable属性实现的)
但是这次的项目是很多个做成的Form,且数量比较多通过统一主画面调用,所以不知道如何同过应用程序的释放和开辟资源来实现。
望各位高手指点迷津!!

解决方案 »

  1.   

    1、    static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);           
                Application.Run(new ClsTest());
            }
        }    修改 static void Main() 为 static void Main(string[] args)就可以为Main函数传参数了。
         
    2、有两种方式:
    一、启动界面就是主界面,其他的界面根据button的不同,new出来就行了
    二、如果其他的都已经是EXE程序了,那就参照1的修改方式,用Process启动这个EXE 
      

  2.   

    在cmd下ap.exe 参数1,参数2,参数3...
      

  3.   

    1、    
    static class Program 
        { 
            /// <summary> 
            /// 应用程序的主入口点。 
            /// </summary> 
            [STAThread] 
            static void Main(string[] args)
            { 
                if(args!=null)
                {
                   Console.WriteLine("使用的参数个数:"+args.Length);
                }
                Application.EnableVisualStyles(); 
                Application.SetCompatibleTextRenderingDefault(false);          
                Application.Run(new ClsTest()); 
            } 
        } 
    假如生成的文件名为MyForm.exe,那么可以在命令行下运行:MyForm.exe 1 2 3 abc
     
        
    2、有两种方式: 
    一、启动界面就是主界面,其他的界面根据button的不同,new出来就行了 
    二、如果其他的都已经是EXE程序了,那就参照1的修改方式,用Process启动这个EXE 
      

  4.   

      Main 方法是程序的入口点,程序控制在该方法中开始和结束。
       可通过控制台传值.
      

  5.   

    .NET程序的生成以及执行过程:
     将源代码(source code)编译成为托管模块(Managed Module)-->将托管模块组合成程序集-->加载CLR-->执行程序集代码
      

  6.   

    谢谢回复! 我也知道改main方法,但是参数是怎么传进去的,通过什么方式在哪传给main方法呢?我试了一下 new的话是不行的 没有任何反应通过在button_click方法中调用application.run的话则会引起应用程序长时间没有反应
      

  7.   

    1:比如你的程序和某些文件进行关联,当通过双周关联的文件时系统就会自动的调用这个带参数Main方法把文件名等信息以参数的形式传到了Main方法中.
    2:你可以做成Mdi类型的应用程序,不同的菜单处理打开不同的Form,使用New 建立窗体的实例,然后Show出来就是了.
      

  8.   

    谢谢大家的回复!当时可能我忘了说,我的项目是应用程序,所以传参的话不能通过控制台并且exe文件的调用也没有参数的因为就是普通的应用程序 但是需要从一些文件读取内容或者读取本机的一些信息到args[]所以产生这个问题另外,我想知道程序一开始进入Main()方法前做了什么 是不是可以从这个角度出发 提前捕获
      

  9.   

    修改了main的参数以后,就可以用System.Diagnostics.Process通过命令行,启动EXE程序,并传入参数
      

  10.   

    其实系统就如3楼所说的第二种情况 里面有多个project包含了多个program.cs文件 也就是生成了多个exe文件而统一入口只有一个 单一打开任一子画面的exe都会出错 在每个program中调用创建新FOrm对象前都要从args[]参数中去到一个string对象(args[0]) 它是特定格式的信息,(应该是从文件或者自己的生成好的)也就是说我想知道主画面的button.click 到底做了什么 希望高手指点
      

  11.   

    button.click后的参数,通过System.Diagnostics.Process,传递到AAA.exe
      

  12.   

    为什么需要通过传参方式呢?从lz的想法看是需要给程序几个特定参数,我觉得lz没有说清楚具体需要做什么
      

  13.   

    为什么需要通过传参方式呢?从lz的想法看是需要给程序几个特定参数,我觉得lz没有说清楚具体需要做什么
      

  14.   

    这个程序的主框架不是我搭的 所以我是在理解程序结构 大体了解就是要通过调用每个form下面program的main方法
    通过main方法传参,传入的是一个包含着一个对象信息的string 当然还有别的 另外因为参数信息中还包含一些和该form相关的信息 所以设计时在这个地方传参 毕竟main是每个form启动的入口