簡體   English   中英

如何使Delete鍵在WebBrowser控件中工作

[英]How do I make the Delete key work in the WebBrowser control

我有一個.net Windows窗體項目,其中包含System.Windows.forms.WebBrowser控件,允許用戶對HTML內容進行一些編輯。 當此控件處於編輯模式時可以拖放編輯div或span等元素,但選擇元素並鍵入Delete不會執行任何操作。

我看過幾篇關於用C ++編寫這個工作的帖子,但它們並不是很詳細。 示例http://social.msdn.microsoft.com/Forums/en-US/ieextensiondevelopment/thread/1f485dc6-e8b2-4da7-983f-ca431f96021f/

下一篇文章討論了如何使用一個名為TranslateAccelerator方法的函數來解決MFC項目中的類似問題。 http://vbyte.com/iReader/Reader.asp?ISBN=0735607818&URI=/HTML/chaab.htm

有沒有人建議如何使刪除鍵在C#或VB中用於Windows窗體項目?

這是我創建WebBrowser內容的代碼:

WebBrowser1.Navigate("about:blank")   ' Initializes the control
Application.DoEvents
WebBrowser1.Document.OpenNew(False).Write("<html><body><span>Project Title</span><input type='text' value='' /></body></html>")
WebBrowser1.ActiveXInstance.Document.DesignMode = "On"  ' Option Explicit must be set to off
WebBrowser1.Document.Body.SetAttribute("contenteditable", "true")

謝謝

那么問題是其中一個控件屬性“WebBrowserShortcutsEnabled”被設置為false。 謝謝大家的幫助,沒有人能夠猜到這一點,所以我得到了一個很大的“DUH!”。 我確實找到了一種在c#中使用的方法,代碼看起來像這樣:

public Form1() {
    InitializeComponent();
    webBrowser1.Navigate("about:blank");  // Initializes the webbrowser control
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) {
    mshtml.IHTMLDocument2 doc = webBrowser1.Document.DomDocument as mshtml.IHTMLDocument2;
    doc.designMode = "On";
    webBrowser1.Document.OpenNew(false).Write(@"<html><body><span>Project Title</span><input type=""text"" value="""" /></body></html>");
}

...假設已將參考添加到MSHTML中。 documentCompleted事件在我的第一個代碼exmaple中完成與Application.DoEvents相同的事情,因此可以采用任何一種方式。

我剛試過這個方法:

webBrowser1.Navigate(@"javascript:document.body.contentEditable='true'; document.designMode='on'; void 0");

可以拖動和刪除元素,也可以通過雙擊編輯文本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM