如何在程序中模拟出按钮Default属性=True的效果?

ynduanlian 2010-07-22 10:45:05
如果在窗体上放置一个文本输入框,放置一个按钮,并将按钮default属性设置为True,那么在文本输入框获是焦点时输入Enter键,回车,自动相当于点击按钮。
比如:
Private Sub Command1_Click()
MsgBox Text1.Text
End Sub
当我在TextBox1中输入“ABC”时,输入回车,会弹出对话框“ABC”

但是当我用另一段程序来模拟这个动作时:
Text1.Text = Text1.Text & vbCrLf
却不会弹出对话框,模拟不出这样的效果。问题出在什么地方?


或者:
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const WM_CHAR = &H102

Private Sub Command2_Click()
PostMessage Me.hwnd, WM_CHAR, 13, 1
End Sub

直接在同一个窗体中向窗体发送 回车符 也不能模拟出这个过程
...全文
40 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ldy888 2010-07-22
  • 打赏
  • 举报
回复
PostMessage1 Me.hWnd, &H100, 13, 0

&H100 常数名是是什么 忘却鸟,绝对管用就是
ynduanlian 2010-07-22
  • 打赏
  • 举报
回复
终于搞明白了default=true后,响应的是key_down事件,把WM_CHAR改为WM_KEYDOWN就OK了
PostMessage Me.hwnd, WM_KEYDOWN, 13, 1

WM_CHAR消息--> Key_Press事件
ynduanlian 2010-07-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bancxc 的回复:]
其实就是窗体接收 Form_keyDown
if keycode=回车 then
call Command2_Click()
end if
[/Quote]
确实是窗体的KeyDown事件,为什么用下面向窗体发磅回车符消息的方式模拟不出来呢?

Private Sub Command2_Click()
PostMessage Me.hwnd, WM_CHAR, 13, 1
End Sub
bancxc 2010-07-22
  • 打赏
  • 举报
回复
其实就是窗体接收 Form_keyDown
if keycode=回车 then
call Command2_Click()
end if
dafu2003 2010-07-22
  • 打赏
  • 举报
回复
按钮的属性有很多,你说的是哪个属性的缺省属性啊?怎么不说明白点?

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧