2012-04-19 10 views
1

私は、ユーザーがHTML電子メールを送信できるようにするために、C#で電子メールクライアントを構築しています。箇条書きと番号付きリストを挿入するオプションを含む一般的な書式設定機能があります。ユーザーがコントロールをタブで移動できるようにしたいが、Tabキーを使用してリスト内の箇条書きや数字をインデントすることもできます。特定のコントロール、特にWebBrowserコントロール内でTabStopをエスケープする方法はありますか?Escape Tab WebBrowserコントロール内で停止する

答えて

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

複数行TextBoxの場合、AcceptsTabプロパティを使用できます。

WebBrowserコントロールの場合は、KeyPressイベントを使用して、タブ文字「\t」を挿入する必要があると思います。

+0

これはトリックでした! Davidに感謝します! – Alex

関連する問題