2012-04-19 88 views
1

我在c#中構建了一個允許用戶發送HTML電子郵件的電子郵件客戶端。我有一些通用的格式化功能,包括插入項目符號和編號列表的選項。我想允許用戶通過控件選項卡,但也可以使用Tab鍵縮進列表中的項目符號或數字。有沒有一種方法可以在特定控件中跳過TabStop,特別是webBrowser控件?WebBrowser控件中的Escape TabStop

回答

4

大衛引發了這個想法,但我想提供一些細節。我用mshtml來實際插入縮進和縮進。只是仍然移動到下一個控件,所以添加e.IsInputKey = true實際上將光標保留在webBrowser控件中,以便用戶可以繼續輸入。

private void webBrowser_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) 
    { 
    if (e.KeyData == Keys.Tab) 
    { 
     webBrowser.Document.ExecCommand("Indent", false, null); 
     e.IsInputKey = true; //prevents going to next control 
    } 
    else if (e.KeyData == (Keys.Shift | Keys.Tab)) 
    { 
     webBrowser.Document.ExecCommand("Outdent", false, null); 
     e.IsInputKey = true; 
    } 
    } 
0

對於多行文本框,您可以使用AcceptsTab屬性。

對於WebBrowser控件,我認爲您必須使用KeyPress事件並自己插入製表符\t

+0

這樣做了!謝謝大衛! – Alex 2012-04-19 17:59:54