C# 如何让类在Win Forms应用程序中首先运行
我需要在应用程序启动时运行一个名为StartUp.cs的类。我希望该类将值分配给另一个名为MyAppSettings.cs的类。现在,当窗体FRMMainCole加载时,我希望它从设置中读取值,因为它会影响窗体FRMMainCole上的控件。我已经尝试了几种方法,并意识到我需要帮助。如果您查看C# 如何让类在Win Forms应用程序中首先运行,c#,.net,winforms,startup,main,C#,.net,Winforms,Startup,Main,我需要在应用程序启动时运行一个名为StartUp.cs的类。我希望该类将值分配给另一个名为MyAppSettings.cs的类。现在,当窗体FRMMainCole加载时,我希望它从设置中读取值,因为它会影响窗体FRMMainCole上的控件。我已经尝试了几种方法,并意识到我需要帮助。如果您查看Program.cs,您将看到如下内容: [STAThread] static void Main() { Application.EnableVisualStyle
Program.cs
,您将看到如下内容:
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
您只需在
Application.EnableVisualStyles()上面添加StartUp.cs调用代码>作为注释状态-发布一些您尝试过的代码,但是,看看下面是否是您需要的
public class InitialiseSettings
{
public static void Initialise()
{
//Code to run here
}
public InitialiseSettings()
{
}
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//Instantiate an object here of the class or call a static function of that class etc etc
InitialiseSettings settings = new InitialiseSettings();
InitialiseSettings.Initialise();
}
private void Form1_Load(object sender, EventArgs e)
{
//Or you could do it here - before the form is displayed
}
}
也可以在表单实例化之前调用类(Program.cs)
静态类程序
{
///
///应用程序的主要入口点。
///
[状态线程]
静态void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//在这里调用类
Application.Run(新Form1());
}
}
在修改Program.cs文件时,您可能还需要向StartUp
类添加静态voidMain()
方法,并将其作为项目的起点。这将使您能够最终控制应用程序的启动方式
可以在项目设计器的应用程序页面中设置启动对象。请注意,这也意味着您将无法使用默认的winform应用程序框架。但是如果你想对你的应用程序设置进行更多的控制,那么这可能是最好的选择
有关更多信息,请参阅。错误的代码部分是
//Set Initial Settings
MyAppSetting MyAppSetting = new ChessStrategyGame.MyAppSetting();
这样,每次都会创建一个新对象
解决方案:
如果您将设置类“MyAppSettings.cs”设置为静态类,它将对您有所帮助。
通常,设置类创建为静态类,这样您可以一次性设置值,并可以通过应用程序访问属性/值
e、 g
我认为你需要发布你的代码,这样我们就可以了解你到目前为止尝试了什么。用这种方式向您指出解决方案可能更容易。是的,然后发布您尝试过的代码。也。让问题更清楚一点,我无法理解这里是表单加载方法private void frmmanaconsole_load(对象发送者,EventArgs e){CreateGroupBox();//设置初始设置MyAppSetting MyAppSetting=new ChessStrategyGame.MyAppSetting();movesToolStripMenuItem.Checked=MyAppSetting.ShowMoves;}您有一个StartUp.cs
来为MyAppSettings.cs
分配一些值吗?从哪里获取这些值?
//Set Initial Settings
MyAppSetting MyAppSetting = new ChessStrategyGame.MyAppSetting();
[STAThread]
static void Main()
{
// create object of startup class and call initialize method
StartUp newStartUp = new StartUp();
newStartup.Initialize();
Application.Run(new Form1());
}
StartUp.cs
----------
public class StartUp
{
public void Initialize()
{
MyAppSettings.ShowMoves = true;
}
}
MyAppSettings.cs
----------------
public static MyAppSettings
{
public static bool ShowMoves {get; set;}
}
Form1.cs
--------
private void Form1_Load(object sender, EventArgs e)
{
CreateGroupBox();
//Set Initial Settings
movesToolStripMenuItem.Checked = MyAppSetting.ShowMoves;
}