如果我将TextBox
属性AcceptsTab
设置为True
TextBox_KeyDown
事件中的这种情况无效。
if (e.KeyCode == Keys.Tab)
{
if ((e.Control) && (e.Shift))
{
e.Handled = true;
if (Tabs.SelectedIndex > 0)
Tabs.SelectedIndex = Tabs.SelectedIndex - 1;
else
Tabs.SelectedIndex = Tabs.TabPages.Count - 1;
}
else if (e.Control)
{
e.Handled = true;
if (chatFormTabs.SelectedIndex < chatFormTabs.TabPages.Count - 1)
chatFormTabs.SelectedIndex = chatFormTabs.SelectedIndex + 1;
else
chatFormTabs.SelectedIndex = 0;
}
}
我想在Form KeyDown事件中使用这个条件,但它对我不起作用。
任何人都可以建议我怎么做:
答案 0 :(得分:4)
试试PreviewKeyDown event。我有一个类似的问题(接受箭头键)并且效果很好。
答案 1 :(得分:3)
除非您处于多行模式,否则Textbox将不接受该标签。通过将multiline属性设置为true切换到多行模式。然后,在文本框控件的KeyPress事件中添加以下内容。
if (e.KeyChar == '\t' || e.KeyChar== (char)13)
e.Handled = true;
上面的代码表示,在按Tab键或输入键时默认不做任何操作。
之后,将以下代码添加到文本框控件的KeyDown事件中:
if (e.KeyCode == Keys.Tab)
{
textBox1.AppendText(@"\t");
}
在上面代码的大括号内,处理按Tab键时要执行的操作。
答案 2 :(得分:2)
TextBox.TabStop Property TextBoxBase.AcceptsTab Property 您可以使用TabStop属性指定是否可以使用TAB键将焦点移动到控件。读/写布尔。