1

ユーザーがHTMLメールを送信できるようにするメールクライアントをc#で構築しています。箇条書きや番号付きリストを挿入するオプションなど、一般的な書式設定機能がいくつかあります。ユーザーがコントロールをタブで移動できるようにするだけでなく、タブ キーを使用してリスト内の箇条書きや数字をインデントしたいと考えています。特定のコントロール、特に webBrowser コントロール内で TabStop をエスケープする方法はありますか?

4

2 に答える 2

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;
     }
  }
于 2012-04-20T12:01:46.053 に答える
0

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

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

于 2012-04-19T17:34:13.707 に答える