在你的RichTextBox的KeyDown事件中加上如下代码:Private Sub RichTextBox1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 9 Then SendKeys "+{TAB}" End Sub“TAB”键的键值为9,当检测到“TAB”键被按下,就自动发送一个按键“SHIFT + TAB”,该键的放送方式为:SendKeys "+{TAB}"。就等于再反过来按一次“TAB”键,焦点就又回来了。这样当你在RichTextBox中按下“TAB”键就不会失去焦点了。
把所有的控件的tabstop设为false
对了,还要加上四个空格,我忘记了,只要再加一句: RichTextBox1.text=RichTextBox1.text & " " '四个空格Private Sub RichTextBox1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 9 Then '检测是否按下了“TAB”键 SendKeys "+{TAB}" '焦点回来 RichTextBox1.text=RichTextBox1.text & " " '加四个空格先 RichTextBox1.SelStart = Len(RichTextBox1.Text) '这句是让光标停在文本的最后, '你不希望每次按下“TAB”键光标却跑到文本的最前面吧。 end if End SubOK大功告成,给分吧。
If KeyCode = 9 Then SendKeys "+{TAB}"
End Sub“TAB”键的键值为9,当检测到“TAB”键被按下,就自动发送一个按键“SHIFT + TAB”,该键的放送方式为:SendKeys "+{TAB}"。就等于再反过来按一次“TAB”键,焦点就又回来了。这样当你在RichTextBox中按下“TAB”键就不会失去焦点了。
RichTextBox1.text=RichTextBox1.text & " " '四个空格Private Sub RichTextBox1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 9 Then '检测是否按下了“TAB”键
SendKeys "+{TAB}" '焦点回来
RichTextBox1.text=RichTextBox1.text & " " '加四个空格先
RichTextBox1.SelStart = Len(RichTextBox1.Text) '这句是让光标停在文本的最后,
'你不希望每次按下“TAB”键光标却跑到文本的最前面吧。
end if
End SubOK大功告成,给分吧。
不过我发现可以把 SendKeys "+{TAB}" 替换为 KeyCode = 0,这样相当于取消掉按键,焦点不会失去。