C#更改WebBrowser.ScrollbarsEnabled属性显示无效的URI异常

时间:2011-08-01 13:07:04

标签: c# visual-studio-2010 browser uri

当我只执行以下代码行时

wMessages.ScrollBarsEnabled = true;

我可以在IntelliTrace数据中看到System.UriFormatException,说"Invalid URI: The hostname could not be parsed."。我无法捕获此异常,它仅在IntelliTrace中显示。删除代码使我的webbrowser完美运行,但我需要这些滚动条。

我无法理解滚动条和URI之间的联系是什么?也许它与浏览器的Document属性有关?该文档的网址为"about:blank"

有什么建议吗?

UPD:

以下是完整代码:

string h = "";
if (currentpage != null)
    h = template + "<body><div class=\"messages\">" + currentpage.Messages() + "</div><div></div></body></html>";
else
    h = template + "<body><div class=\"messages\">" + "</div><div></div></body></html>";

wMessages.ScrollBarsEnabled = false;

Misc.OpenNew(wMessages, h);
try
{
    if (wMessages == null) return;
    if (wMessages.Document == null) return;
}
catch (System.Exception)
{
    return;
}

HtmlElement body = wMessages.Document.Body;
wMessages.Dock = DockStyle.Top;                

const double MaxHeightRatio = 0.4;

int availableHeight = pContainer.Height - wHeader.Height - pFooter.Height;

int BodyHeigth = (int)body.ScrollRectangle.Height;

if (BodyHeigth > (int)(availableHeight * MaxHeightRatio))
{
    wMessages.Height = (int)(availableHeight * MaxHeightRatio);                    
    wMessages.ScrollBarsEnabled = true; // here goes the exception
}
else
{
    //wMessages.ScrollBarsEnabled = false;
    wMessages.Height = BodyHeigth;
}                
wMessages.Visible = true;

0 个答案:

没有答案