如何在运行winform应用程序后调用函数

本文关键字:调用 函数 应用程序 winform 运行 | 更新日期: 2023-09-27 18:28:24

我构建了与用webBrowser打开一些网站相同的win Form,之后我需要运行runMyfunction,但这并没有发生。

然后我运行runMyfunction,所有的都停止了,当我调试它时,它停留在上

Application.Run(new Form1());

我在这里缺少什么?这是我的代码:

namespace UmbWin
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            //I tried this also
            //Form1 myForm = new Form1();
            //myForm.Show();
            //myForm.runMyfunction()- doesn't do anything
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }  
    }
}
public Form1()
{
    InitializeComponent();
}
[STAThread]
private void Form1_Load(object sender, EventArgs e)
{
    string authHeader = "User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)";
    webBrowser.Navigate("https://www.test.com/Default.aspx", null, null, authHeader);
    runMyfunction();
}      
public void runMyfunction()
{
    //here where it stops and does nothing
    HtmlElement head = webBrowser.Document.GetElementById("123");
    HtmlElement scriptEl = webBrowser.Document.CreateElement("script");
}

如何在运行winform应用程序后调用函数

这是因为Application.Run只有在应用程序的主窗体关闭后才会完成。

Application.Run运行消息循环(它检查点击和其他Windows事件。如果你不知道这一切意味着什么,请阅读Windows/W32是如何工作的)。它注定要永远运行。

Navigate调用之后,您的runMyfunction将只运行一次。仅此而已。如果您想在每次导航后运行它,请订阅DocumentCompleted事件。