如何在运行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");
}
这是因为Application.Run
只有在应用程序的主窗体关闭后才会完成。
Application.Run
运行消息循环(它检查点击和其他Windows事件。如果你不知道这一切意味着什么,请阅读Windows/W32是如何工作的)。它注定要永远运行。
在Navigate
调用之后,您的runMyfunction
将只运行一次。仅此而已。如果您想在每次导航后运行它,请订阅DocumentCompleted
事件。