Uri.AbsoluteUri 上的 C# NullReferenceException
C# NullReferenceException on Uri.AbsoluteUri
我有这段代码:
WebBrowser wb = new WebBrowser();
wb.Url = new Uri("https://www.google.com/");
ProgressChanged += newWebBrowserProgressChangedEventHandler(webBrowser_ProgressChanged);
comboUrl.Text = wb.Url.AbsoluteUri;
但我在最后一行得到 NullReferenceException
。
我是不是漏掉了什么?
像您一样调用 .Url 与调用 Navigate
相同
Setting this property is equivalent to calling the Navigate method and passing it the specified URL.
问题是您收到空引用异常,因为在 WebBrowser 控件完成导航到 Url 之前 WebBrowser.Url 为空。您可以在 Navigated the wb.Url 属性 will return the current Url 的事件处理程序中调用 .Url。例如你可以做
private void Form1_Load(object sender, EventArgs e)
{
WebBrowser wb = new WebBrowser();
wb.Url = new Uri("https://www.google.com/");
wb.Navigated += wb_Navigated;
//wb.Url will be null here.
}
void wb_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
// url not null here..
Debug.WriteLine((sender as WebBrowser).Url);
}
我有这段代码:
WebBrowser wb = new WebBrowser();
wb.Url = new Uri("https://www.google.com/");
ProgressChanged += newWebBrowserProgressChangedEventHandler(webBrowser_ProgressChanged);
comboUrl.Text = wb.Url.AbsoluteUri;
但我在最后一行得到 NullReferenceException
。
我是不是漏掉了什么?
像您一样调用 .Url 与调用 Navigate
相同Setting this property is equivalent to calling the Navigate method and passing it the specified URL.
问题是您收到空引用异常,因为在 WebBrowser 控件完成导航到 Url 之前 WebBrowser.Url 为空。您可以在 Navigated the wb.Url 属性 will return the current Url 的事件处理程序中调用 .Url。例如你可以做
private void Form1_Load(object sender, EventArgs e)
{
WebBrowser wb = new WebBrowser();
wb.Url = new Uri("https://www.google.com/");
wb.Navigated += wb_Navigated;
//wb.Url will be null here.
}
void wb_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
// url not null here..
Debug.WriteLine((sender as WebBrowser).Url);
}