gpt4 book ai didi

c# - 如何在表单启动后执行代码?

转载 作者:太空狗 更新时间:2023-10-30 00:02:11 24 4
gpt4 key购买 nike

我真的是 Windows 窗体编程的新手,不太确定什么是正确的编程方法。

这是我的困惑。

我有一个表格:

    public partial class ReconcilerConsoleWindow : Form
{
public ReconcilerConsoleWindow()
{
InitializeComponent();
SetLogText("Started");

}

public void SetLogText(String text)
{
string logInfo = DateTime.Now.TimeOfDay.ToString() + ": " + text + Environment.NewLine;
tbx_Log.AppendText(logInfo);
}


}

在我的 Program.cs 类中,我有以下代码:

    static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
ReconcilerConsoleWindow window = new ReconcilerConsoleWindow();
Application.Run(window);

if (CallSomeMethod() == true)
{
window.SetLogText("True");
}

}


}

现在,一旦 Application.Run 命令显示了窗口,程序就会在此时停止。如何在窗口打开时进行进一步处理?

以上只是一个例子。我的目的是读取一个 XMl 文件并显示一个 datagridview。随后,我观察 XMl 文件的变化,每次发生变化时,我都想刷新 datagridview。但是,一旦弹出控制台,我该如何继续我的程序并即时更改表单上显示的信息?

最佳答案

Application.Run 之后发生的处理通常在表单的 Load 事件处理程序中触发。通过双击窗体上的任何空白区域,您可以在 Visual Studio 中轻松创建 Load 方法。

这看起来像这样

    private void ReconcilerConsoleWindow_Load(object sender, EventArgs e)
{
if (CallSomeMethod())
{
this.SetLogText("True");
}
}

这是(如其他几个答案中所述)的原因是主要的 thread (调用 Application.Run(window) 的那个)现在开始操作 Message Pump对于表格。您可以使用表单或表单的事件通过消息传递继续在该线程上运行。或者你可以开始一个新线程。这可以在调用 Application.Run(window) 之前 在 main 方法中完成,但大多数人会在 Form_Load 或表单构造函数,以确保表单已设置等。Application.Run 返回后,所有 表单现已关闭。

关于c# - 如何在表单启动后执行代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4100428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com