在写程序的时候,用户提了个要求,但是在实际CODING的时候发现了一个问题,老实说这个问题我从来都没有考虑过,在此希望大家帮帮我,出出主意。一个窗体上有若干TEXT控件和COMMAND控件,在TEXT中按下TAB键可以跳到另一个TEXT或COMMAND控件上,跳转的顺序按照控件的TABINDEX设置,这些都不是问题。
现在遇到一个问题:在其中的一个TEXT控件中我需要处理TAB键。
但是却无法捕捉到TAB键:
text_keydown或TEXT_KEYPRESS事件均不会被触发做了一个测试:
在窗体上只放置一个TEXT控件(没有其他任务控件)
运行,你在TEXT中按下TAB键可以触发keydown和KEYPRESS事件然后在窗体上增加一个command控件,
运行,此时在TEXT中按TAB键就不会再触发keydown或KEYPRESS事件,而是直接焦点跳到command控件上去了。
不知道朋友们有什么方法可以做到在第二种情况下TAB键依然能触发TEXT的按键事件。
请朋友们先按照我说的做个测试再回答我。

解决方案 »

  1.   

    Private Sub Text1_LostFocus()
    MsgBox ""
    End Sub呵呵...你是不是想text失去焦点就会触发一个事件
    如果你的程序确是需要在一个text失去焦点时执行一些代码....那么在
    text的lostfocus事件中写代码吧
      

  2.   

    TO ioriliao() 
    我不是想捕获失去焦点的事件,而是想捕获TAB按键。按照我问题中的例子,你试一下:
    Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 9 Then MsgBox "TAB"
    End Sub如果窗体上只有TEXT1这个控件,运行时在TEXT控件中按下TASB就会触发这个事件,而当窗体上再放一个TEXT或COMMAND控件时这个事件就不会被触发了。
      

  3.   

    是这样的,如果您处理的控件以外的控件的tabstop=true,那么tab键会被占用
    楼主可以将界面所有控件tabstop设为false,然后用代码在keydown中控制让某个控件获得焦点
      

  4.   

    哈哈,谢谢 microtry(米醋)看来还是基本功不扎实啊。