名称“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"不出现在当前上下文中"错误意味着你可能没有定义这样的变量/字段/属性等。在当前上下文中
其次,由于您没有澄清错误的行,我将假设它出现在这两行:
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的新变量。