
1、treeview失去焦点,可以在LostFocus事件中处理
2、人为让所选的节点非高亮显示
Private Sub TreeView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim nd As Node
Set nd = TreeView1.HitTest(x, y)
If Button = vbLeftButton Then
If nd Is Nothing Then '点击空白处
TreeView1.SelectedItem = Nothing
'在这里处理
End If
End If
End Sub
好像没有直接设置失去焦点事件。但换个角度,焦点属于输入范畴。失去焦点意味有其他键盘、鼠标输入,
比如鼠标先点击另外一个控件,才会导致当前控件失去焦点。
就可以在“鼠标点击事件”“键盘输入事件”上加入判断某控件节点node.isFocused()是否有焦点的句子。
要说失去焦点就不得不先说
获得焦点
大部分有Enabled和Visible属性的对象都有
Got_Focus()
和LostFocus()事件
而且对象的Enabled和Visible属性必须设置为TURE
才可以接受这两个事件
获得焦点即GOT_Focus
何为获得焦点呢
比如TEXT控件而言
他获得焦点的时候光标是在闪的
整个控件处于
一种激活状态
换句话说
焦点也可以说成是光标
比如按下按钮之后
COMMAND控件上有一圈虚线
这就是焦点
所在之处
如果这个焦点从TEXT控件
或者COMMAND控件上转移
了的时候
那么
TEXT或者COMMAND控件的焦点失去事件
即被触发
就FORM而言
是焦点不在窗体之上即触发
比如运行的时候你点击了窗
体以外的部分
按
TAB键切换顺序时候
或单击对象的用户动作
或者SETFOCUS方法
都可以触发对象的焦点失去事件
SETFOCUS是动态的用代码设置的
最后重申一句
对象的Enabled和Visible属性必
须同时设置为TRUE的时候
才可以接受这两个事件
下面的解释来自MSDN
此事件是在一个对象失去焦点时发生,焦点的丢失或者是由于制表键移动或单击另一个对象 *** 作的结果,或者是代码中使用
SetFocus
方法改变焦点的结果。
语法
Private
Sub
Form_LostFocus(
)
Private
Sub
object_LostFocus([index
As
Integer])
LostFocus
事件包括下列部分:
部分
描述
object
一个对象表达式,其值是“应用于”列表中的一个对象。
index
一个整数,它用来唯一地标识一个在控件数组中的控件。
说明
LostFocus
事件过程主要是用来对更新进行验证和确认。使用
LostFocus
可以在焦点移离控件时引进确认。这类事件过程的另一种用途与在
GotFocus
事件过程中的应用类似,可以隐藏、显示其它对象或者使它们有效或无效。也可使设置在该对象的
GotFocus
事件过程中的条件取反或对其进行更改。
如果由
Visual
Basic
所建立的
.exe
文件要显示一个由也是用
Visual
Basic
所建立的
.dll
文件所创建的对话框,则该
.exe
文件的窗体将得到
Deactivate
和
LostFocus
事件。这可能是不希望的,因为对话框将不能获得
Deactivate
事件:
如果该对象是进程外的部件。
如果该对象不是用
Visual
Basic
编写成。
在开发环境中当调用一个用
Visual
Basic
所建立的
DDL
时。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)