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