名称“webbrowser”;在当前上下文中不存在

本文关键字:上下文 不存在 webbrowser 名称 | 更新日期: 2023-09-27 18:11:53

我有这样的代码:

public void button1_Click(object sender, EventArgs e)
{
    for(int i = 0; i < numericUpDown1.Value; i++)
    {
        WebBrowser webBrowser = new WebBrowser();
        webBrowser.Visible = false;
        webBrowser.ScriptErrorsSuppressed = true;
        webBrowser.Navigate("want to keep it private.");
        webBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser_DocumentCompleted);
    }
}
public void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    HtmlElement botNick = webBrowser.Document.GetElementById("nick");
    botNick.SetAttribute("value", textBox1.Text);
    HtmlElement botPlay = webBrowser.Document.GetElementsByTagName("button")[2];
    botPlay.InvokeMember("click");
}

为什么我得到"名称"webBrowser"不存在于当前上下文中"?

名称“webbrowser”;在当前上下文中不存在

首先,"名称"webBrowser"不出现在当前上下文中"错误意味着你可能没有定义这样的变量/字段/属性等。在当前上下文中

其次,由于您没有澄清错误的行,我将假设它出现在这两行:

HtmlElement botNick = webBrowser.Document.GetElementById("nick");
HtmlElement botPlay = webBrowser.Document.GetElementsByTagName("button")[2];

发生这种情况是因为,当您在这里声明webBrowser时:

WebBrowser webBrowser = new WebBrowser();

存在于函数void button1_Click(object sender, EventArgs e)中因此对void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)函数是不可见的。要纠正这种情况,您可以将webBrowser作为参数传递,或者在后一个函数中定义一个名为webBrowser的新变量。