vb 多个窗体的焦点问题
在MDI父窗体中创建了多个子窗体,窗体上有各种控件,当这些窗体打开很多的时候会重叠,问题来了,现在只有点击窗体的标题栏才会切换那个窗体上, 我想要的效果是无论点击窗体的哪个位置都让那个窗体获得焦点,或者让那个窗体显示在最前边,这个该如何设置啊?
[解决办法]
KeyPreview 属性
返回或设置一个值,以决定是否在控件的键盘事件之前激活窗体的键盘事件。键盘事件为:KeyDown、KeyUp 和 KeyPress。
语法
object.KeyPreview [= boolean]
KeyPreview 属性语法有以下组成部分:
部分 描述
Object 对象表达式,其值是“应用于”列表中的一个对象。
Boolean 布尔表达式,指定如何接收事件。Setting 中有其说明。
设置值
boolean 的设置值为:
设置值 描述
True 窗体先接收键盘事件,然后是活动控件接收事件。
False (缺省值)活动控件接收键盘事件,而窗体不接收。
说明
可以用该属性,生成窗体的键盘处理程序,例如,应用程序利用功能键时,需要在窗体级处理击键,而不是为每个可以接收击键事件的控件编写程序。
如果窗体中没有可见和有效的控件,它将自动接收所有键盘事件。
若要在窗体级处理键盘事件、而不允许控件接收键盘事件时,在窗体的 KeyPress 事件中设置 KeyAscii 为 0,在窗体的 KeyDown 事件中设置 KeyCode 为 0。
注意 一些控件能够拦截键盘事件,以致窗体不能接收它们。这样的例子有:CommandButton 控件有焦点时的 ENTER 键、以及焦点在 ListBox 控件上时的方向键。
[解决办法]
检查下你有没有调用不良的第三方控件,或者自行编写了什么代码造成的。
因为按道理来说不会出现你说的问题。