WebBrowser控件在编辑状态下,按下回车键后执行的是分段操作,相隔较大,
Shift+回车是换行,两种行间距不一样。
为了让行间距一样,查了些资料,都说是要实现IDocHostUIHandler接口来定制WebBrowser。参考网上的做法把IDocHostUIHandler接口的个人实现挂接到 MSHTML 上。
首先需要获得 ICustomDoc 接口,然后再将个人实现的 IDocHostUIHandler 接口作为参数,
调用 ICustomDoc 接口的 SetUIHandler() 方法。webBrowser.DocumentText = string.Empty;
webBrowser.Document.Write(" <BODY> <DIV> test </DIV> </BODY>");
webBrowser.Document.ExecCommand("EditMode", false, null);ICustomDoc cDoc = (ICustomDoc)this.webBrowser.Document.DomDocument;
cDoc.SetUIHandler((IDocHostUIHandler)this.webBrowser);IDocHostUIHandler接口的实现,只实现该方法GetHostInfo
public void GetHostInfo(ref _DOCHOSTUIINFO pInfo)
{
// DOCHOSTUIFLAG_DIV_BLOCKDEFAULT
pInfo.dwFlags |= 0x00000100;
}然而我把IDocHostUIHandler接口挂接到 MSHTML 上后,WebBrowser控件又不能编辑了,焦点还是focus的,command命令也有效,粗体斜体都能用,就是不能往里边输入了,任何按键都能没有响应,反而丢掉了最初的文字入力功能,
请教各路大大,是不是我接口实现的不对还是怎么回事,急~~~~~~~~~~~
Shift+回车是换行,两种行间距不一样。
为了让行间距一样,查了些资料,都说是要实现IDocHostUIHandler接口来定制WebBrowser。参考网上的做法把IDocHostUIHandler接口的个人实现挂接到 MSHTML 上。
首先需要获得 ICustomDoc 接口,然后再将个人实现的 IDocHostUIHandler 接口作为参数,
调用 ICustomDoc 接口的 SetUIHandler() 方法。webBrowser.DocumentText = string.Empty;
webBrowser.Document.Write(" <BODY> <DIV> test </DIV> </BODY>");
webBrowser.Document.ExecCommand("EditMode", false, null);ICustomDoc cDoc = (ICustomDoc)this.webBrowser.Document.DomDocument;
cDoc.SetUIHandler((IDocHostUIHandler)this.webBrowser);IDocHostUIHandler接口的实现,只实现该方法GetHostInfo
public void GetHostInfo(ref _DOCHOSTUIINFO pInfo)
{
// DOCHOSTUIFLAG_DIV_BLOCKDEFAULT
pInfo.dwFlags |= 0x00000100;
}然而我把IDocHostUIHandler接口挂接到 MSHTML 上后,WebBrowser控件又不能编辑了,焦点还是focus的,command命令也有效,粗体斜体都能用,就是不能往里边输入了,任何按键都能没有响应,反而丢掉了最初的文字入力功能,
请教各路大大,是不是我接口实现的不对还是怎么回事,急~~~~~~~~~~~
看看这个不孬:
URL: http://www.itwriting.com/repos/htmleditor/trunk