0

默认情况下,当您创建 Windows c# 应用程序时,它会从打开某个表单开始

static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
}

是否可以在创建任何表单之前在 Main 函数中做一些事情 - 创建一些对象,执行这些对象的一些方法,并根据结果创建一些表单,或者在其他情况下根本不创建任何表单 - 关闭应用程序?

4

3 回答 3

2

当然是。你试过了吗?

static void Main()
{
    // you can add code here
    Application.EnableVisualStyles();
    // and/or here
    Application.SetCompatibleTextRenderingDefault(false);
    // and so on...
    Application.Run(new Form1());
}

所以也许是这样的:

static void Main()
{
    var someObject = SomeFactory.Fetch(someCriteria);
    if (someObject.SomeValue == false)
        Application.Exit();

    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
}

也许:

static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);

    var someObject = SomeFactory.Fetch(someCriteria);
    if (someObject.SomeValue)
        Application.Run(new FormForValueBeingSet());
    else
        Application.Run(new FormForValueNotBeingSet());
}

代码就是代码,你可以修改它并添加/编辑/删除任何你想要的东西。它是一个 WinForms 应用程序这一事实并没有改变它在应用程序启动时执行的基本前提static void Main()。方法中的任何内容都将被执行。

于 2013-11-06T13:52:19.947 回答
2

当然。您可以随意修改static void Main()

于 2013-11-06T13:50:18.173 回答
1

是的你可以。

您可以通过在表单创建代码之前放置一些代码来测试它...

static void Main()
{
    DateTime now = DateTime.Now;
    DateTime tomorrow = now.AddDays(1);

    if (DateTime.Compare(now, tomorrow) == 0)
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
}

...然后在 Main() 的开头放置一个断点

...然后单步执行代码,看看它有什么效果。

于 2013-11-06T14:03:23.957 回答