在WebBrowser控件中转义TabStop

时间:2012-04-19 15:28:45

标签: c# webbrowser-control

我正在c#中构建一个允许用户发送HTML电子邮件的电子邮件客户端。我有一些通用的格式化功能,包括插入项目符号列表和编号列表的选项。我想允许用户通过控件进行制表,但也可以使用tab键缩进其列表中的项目符号或数字。有没有办法在某个控件中转义TabStop,特别是webBrowser控件?

2 个答案:

答案 0 :(得分:4)

大卫引发了这个想法,但我想提供更多细节。我使用mshtml实际插入缩进和outdent。只是仍然移动到下一个控件,因此添加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;
     }
  }

答案 1 :(得分:0)

对于多行TextBox,您可以使用AcceptsTab属性。

对于WebBrowser控件,我认为您必须使用KeyPress事件并自行插入制表符\t