c#中.Net自带的WerbBrowser控件心得

因为WebBrowser只是对mshtml这个com对象的不完整封装,仅支持一些常见的应用。所以我们还是在项目里添加对mshtml的引用,并且using mshtml。

Q:怎么设置WebBrowser为可编辑模式?

A:如下设置:

doc = wbContent.Document.DomDocument as IHTMLDocument2;
doc.designMode = "On";
//doc.execCommand("EditMode", false, "on");这一句跟上面效果是一样的
Q:为什么往WebBrowser里插入的图片不能改变大小?

A:具体表现是:选中图片等control时会出现拖动大小的标记,但是怎么拖动大小都不改变。这个问题困扰我很久了,google了很久也没找到答案。最后发现加上如下代码就OK了:

wbContent.GotFocus += new EventHandler(EditorFocus);
public void EditorFocus(object sender, EventArgs e)
{
    if (docContent != null && docContent.Body != null)
    {
        docContent.Body.Focus();
    }
}
Q:怎么插入链接、图片,怎么设置字体大小、颜色等等?

A:如下设置,exexCommand更多用法请参照http://www.blueidea.com/tech/web/2003/1242.asp

doc = wbContent.Document.DomDocument as IHTMLDocument2;
doc.execCommand("Bold", false, null);//设置选中为粗体
Q:我知道doc.execCommand("Undo", false, null)能撤销,但我怎么能知道当前能不能撤销(也就是说是不是已经后退到最开始)呢?

A:这个问题我也google了很久,没有找到办法,有人说设置一个数组来监控,不过这样太麻烦。后来看到TinyMCE的代码才恍然大悟,然后这个需求ms早想到了,下面代码就可以:

doc.queryCommandEnabled("Undo");//测试能不能撤销,返回bool
doc.queryCommandState("Bold");//测试当前字体是不是粗体
posted @ 2009-06-30 15:49  老大卫  阅读(393)  评论(0编辑  收藏  举报