c# winform 怎么利用Main()传值

冷尘 2014-08-11 09:16:29
突然有个想法,在winform 中怎么使用Main()传值,试了很多方法终于试出来一个,迫不及待给大家分享:
如有不同的方法请大家指点。
Program 类中代码:

static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
public static void Main(string[] args)
{
if (args.Length != 0)
{
Properties.Settings.Default["FOX"] = args[0].ToString();
Properties.Settings.Default.Save();
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());

}
}

form 中的代码:

public Form1()
{
InitializeComponent();

filePath.Text = Properties.Settings.Default["FOX"].ToString();

}
...全文
720 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
不是只会抄 Application.Run(new Form1()); 这种代码,你要用脑筋去想想。 这里,可以写 Application.Run(form1); 这种代码,form1 是一个变量,引用了一个已经初始化好的窗口对象。
宝_爸 2014-08-12
  • 打赏
  • 举报
回复
传什么参数啊,用的时候直接取 Environment.GetCommandLineArgs Returns a string array containing the command-line arguments for the current process. http://msdn.microsoft.com/en-us/library/system.environment.getcommandlineargs(v=vs.110).aspx
mlqxj35674 2014-08-12
  • 打赏
  • 举报
回复
重大发现,顶
by_封爱 版主 2014-08-12
  • 打赏
  • 举报
回复
我跟你不同 我都是这样的,

static class Program
{
        [STAThread]
        static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1(args));
        }
}


public Form1(string[] args)
        {
            InitializeComponent();

            if (args.Length != 0)
            {
                //我的代码....
            }
直接就可以了 不需要什么Properties的 浪费资源
小恒丶 2014-08-12
  • 打赏
  • 举报
回复
有分享精神 不错 值得鼓励啊
冷尘 2014-08-12
  • 打赏
  • 举报
回复
多谢大家的回复,是我学到很多。
tigerleq 2014-08-12
  • 打赏
  • 举报
回复
给自己留个门,(传说中的后门)。总不说,一个windows程序,我不晓得密码,我们的技术服务人员,就不能,测试,采集数据了吧。
tigerleq 2014-08-12
  • 打赏
  • 举报
回复
static class Program { [STAThread] static void Main(string[] args) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1(args)); } } 呵呵。现在的编程人员基本,都不会这么用了(框架多了这些功能也不可能这样用了)。 不知道你知道 在快捷 方式里,修改路径的 可以加上,一些参数。比如 : xxx.exe -super,xxx.exe -test等等。这些参数是可以传给主程序的。 很早,很早以前,我记得 是在用 vs 2002 的时候,开发的 windows程序,经常这么干(给自己留给门),部署的时候,这些命令,都很有用呵。
wang_lu_yang 2014-08-12
  • 打赏
  • 举报
回复
好用好这个貌似在控制台程序能直接输入
  • 打赏
  • 举报
回复
比较规矩的方法,是给你的 Form1 定义一个属性。例如
public string FOX
{
   set{ filePath.Text = .....}
   get{ ......}
}
以你现在的编程习惯所显露出来的“苗头”,希望你还是多学一点规矩,才好真正有利于工作。
threenewbee 2014-08-11
  • 打赏
  • 举报
回复
用不着,定义一个静态变量即可。 class GlobalData { public static string[] Args; } Main里面写 GlobalData.Args = args; 窗口里面获得 string s = GlobalData.Args[0]; ...

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧