在窗体上放置了2个frame,frame1(占窗体80%面积)里放置image控件(和frame1等大),frame2(占20%)放置label,怎样使窗体接受keypress事

时间:2021-09-30 18:08:36
由于frame、image、lable都没有keypress事件,怎么才能让窗体响应keypress事件,接收到按键呢?

13 个解决方案

#1


能否說明你要達到什麼結果?你這樣的問題不清楚呀?

#2


就是,按一下键换一幅画面和介绍

#3


意思 就是click窗體就換一服畫?

今天打字太痛苦了~~

#4


不是,按键盘上的键,比如,按1就切换到1号画面,按2就切换到2号....按9就到9号

#5


你用keyascii判斷就可以了,
等下,給你做個exp

#6


Option Explicit

Private Sub Form_KeyPress(KeyAscii As Integer)
  Me.Label1.Caption = Chr(KeyAscii)
End Sub


這樣就是判斷按那個鍵盤,然後用label顯示的字去控制image不是很容易麼?

#7


呵呵,我不是这个意思啦,这个我当然知道了,只是如果窗体被其他控件完全遮住的话,这个事件是不会被触发的阿

#8


我剛試了,還是可以接受的呀

#9


咦,奇怪,我的为什么不行啊?对了,窗体不显示标题,而且是最大化显示,窗体上所有的区域被frame1和frame2占据了

#10


你窗体的keyXXX属性设为true没啊?

#11


把窗体form属性里面的keypreview 设定为true
:)

#12


很简单,反正你的程序只是显示一些死的东西,你只要将窗体上所有的“父控件”的ENABLE属性全部设为FALSE就可以了。也就是说,在你的程序中“直接”放在窗体上的就只有FRAME控件的话,你只要将这些FRAME的Enable属性都设为False就可以了,如果还有其如Label之类的东西也是直接放在窗体上的,那也将他们的Enable属性都设为False。
现在你再试试你的程序。

#13


但是现在按一个键产生了2个相同的事件,很奇怪啊

#1


能否說明你要達到什麼結果?你這樣的問題不清楚呀?

#2


就是,按一下键换一幅画面和介绍

#3


意思 就是click窗體就換一服畫?

今天打字太痛苦了~~

#4


不是,按键盘上的键,比如,按1就切换到1号画面,按2就切换到2号....按9就到9号

#5


你用keyascii判斷就可以了,
等下,給你做個exp

#6


Option Explicit

Private Sub Form_KeyPress(KeyAscii As Integer)
  Me.Label1.Caption = Chr(KeyAscii)
End Sub


這樣就是判斷按那個鍵盤,然後用label顯示的字去控制image不是很容易麼?

#7


呵呵,我不是这个意思啦,这个我当然知道了,只是如果窗体被其他控件完全遮住的话,这个事件是不会被触发的阿

#8


我剛試了,還是可以接受的呀

#9


咦,奇怪,我的为什么不行啊?对了,窗体不显示标题,而且是最大化显示,窗体上所有的区域被frame1和frame2占据了

#10


你窗体的keyXXX属性设为true没啊?

#11


把窗体form属性里面的keypreview 设定为true
:)

#12


很简单,反正你的程序只是显示一些死的东西,你只要将窗体上所有的“父控件”的ENABLE属性全部设为FALSE就可以了。也就是说,在你的程序中“直接”放在窗体上的就只有FRAME控件的话,你只要将这些FRAME的Enable属性都设为False就可以了,如果还有其如Label之类的东西也是直接放在窗体上的,那也将他们的Enable属性都设为False。
现在你再试试你的程序。

#13


但是现在按一个键产生了2个相同的事件,很奇怪啊