在Program.cs文件中替代Application.Run Winform

时间:2011-02-25 14:08:08

标签: c# winforms

我有两个Winform的项目,我想通过备用表单运行应用程序。在program.cs文件中有:

Application.Run(new Form1());

这意味着Form1将作为主要表单或启动形式的应用程序执行。 是否可以通过一些时间限制或天数限制以编程方式更改它? 我的意思是两天后它将执行Form2作为启动表单。 如下所示:

Application.Run(new Form2());

有可能吗?

3 个答案:

答案 0 :(得分:7)

当然,这没问题:

var startDate = ReadStartDateFromFile();
if(DateTime.Now.Subtract(startDate).TotalDays < 2 || startDate == new DateTime())
    Application.Run(new Form1());
else
    Application.Run(new Form2());

方法ReadStartDateFromFile读取程序首次启动的日期。如果之前从未启动过,则会返回new DateTime() 如果您想将此作为实现共享软件机制的一种方式,请考虑使用混淆器,否则,它很容易破解。此外,您应该加密文件,并将开始日期写入。另外,请考虑使用虚拟日期创建该文件的设置。如果有人只是删除了该文件,您应该考虑发生安全漏洞并直接显示Form2

感谢Mark在评论中的精彩讨论!

答案 1 :(得分:2)

if(someRuleToDetermineIfForm1NeedsToRun)
{
  Application.Run(new Form1());
}
else if(someRuleToDetermineIfForm2NeedsToRun)
{
  Application.Run(new Form2());
}
else // default
{
  Application.Run(new Form1());
}

答案 2 :(得分:1)

不确定;你可以这样做:

if (condition1)
    Application.Run(new Form1());
else
    Application.Run(new Form2());

您可以根据传入的参数等设置条件