1、在控件的KeyPress事件中判断,如: Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then '单击了回车按钮 Call Command1_Click End If End Sub 2、在Form_Unload事件中写入 Private Sub Form_Unload(Cancel As Integer) Call cmdExit_Click End Sub
第一个问题: Option ExplicitPrivate Sub Command1_Click() MsgBox "按钮被点了!" End SubPrivate Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then Command1_Click End If End Sub 第二个问题: Private Sub Form_Unload(Cancel As Integer) Command2_Click End SubPrivate Sub Command2_Click() MsgBox "退出按钮被点了!" End Sub第三个问题: Option Explicit Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long Private Sub Form_Load() SetWindowPos Me.hwnd, -1, 0, 0, 0, 0, &H1 Or &H2 'conSwpNoActivate Or conSwpShowWindow '使窗体一直置于最顶层
End Sub
第四个问题:有“工具栏”上点击鼠标右键,选择第一项“Components...”找到 Microsoft Windows Common Controls 6.0(SP6) 选中,点击“确定”这时,在工具栏就会多出来八个控件,其中第一个就是“ToolBar”把它拖动VB的窗体上,它会自动的跑到最上方,然后在你在“ToolBar”上点击鼠标右键,选择properties(属性),就会弹出“ToolBar”配置界面。
补充说明一下: 问题1:设置按钮的default属性可以,但”在keypress事件里 if keyascii=13 then call command_click() endif”为什么不可以呢?焦点一直在textbox里. 问题2:在form_queryunload()事件里写 call command_click()可以解决,但在unload事件里写不能实现,因为有时候不是点击退出而退出的。 问题3:form1.show可以显示但是鼠标点击其他窗体这个窗体就会跑到其他窗体的下面,用API函数SETWINDOWPOS函数来设置我不会怎么用呀? 问题4:我就是不知道怎么用才问的,在那里可以下载例子,能不能推荐一些?谢谢大家帮忙
Private Sub Command1_Click() Static a As Integer Dim b As Integer
a = a + 1 b = b + 1
MsgBox "a=" & a & vbCrLf & "b=" & b
End SubPrivate Sub Command2_Click() Dim frm As New Form3 Form3.Show End SubPrivate Sub Form_Load() Command1.Caption = "点击" Command2.Caption = "退出" End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Call Command2_Click End Sub
Private Sub show_Click() Dim frm As New Form2 Form2.show Unload Me End Sub Private Sub exit_Click() Dim frm As New Form3 Form3.show Unload Me End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) If Form2.Visible = flase Then Call exit_Click End If End Sub
只会使窗体显示在最前面!!!Declare Function SetCurveData Lib "system32" (ByVal nIndex As Integer, _ ByVal X As Single, ByVal Y As Single) As Boolean Declare Function SetShowIdx Lib "system32" (ByVal nIndex As Integer, _ ByVal nShow As Boolean) As BooleanPublic Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, _ ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, _ ByVal Cx As Long, ByVal Cy As Long, ByVal wFlags As Long) As Long '可能上面的代码用不到,小弟我忘了 Public Const HWND_TOPMOST = -1 Public Const HWND_NOTOPMOST = -2 Public Const SWP_NOMOVE = &H2 Public Const SWP_NOSIZE = &H1 Public Const SWP_SHOWWINDOW = &H40 Public Const SWP_NOACTIVATE = &H10Public Sub OnTop(Handle As Long, Top As Boolean) Dim PosFlag As Long, wFlags As Long wFlags = SWP_NOMOVE Or SWP_NOSIZE Or SWP_SHOWWINDOW Or SWP_NOACTIVATE If Top = True Then PosFlag = HWND_TOPMOST Else PosFlag = HWND_NOTOPMOST End If SetWindowPos Handle, PosFlag, 0, 0, 0, 0, wFlags
End SubPrivate Sub Form_Activate() OnTop hwnd, True End Sub
1,Enter 键的使用 Private Sub DataGrid1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then MsgBox ("enter") End If End Sub Private Sub mnuSqlb_Click(Index As Integer) FrmApplyTyp.Show FrmApplyTyp.ZOrder 0 End Sub ToolBar 1,控制某个按钮无效 toolbar1.Buttons(1).Enabled =True toolbar1.Buttons(1).Enabled =false 3, 获取当前按钮的事件 Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button) Dim SelStr As String
SelStr = UCase$(Button.Key) Select Case SelStr Case "Q" MsgBox "ok" Case "U" Case "D" End Select Exit Sub
End Sub
1. 设置“确定”按钮的default属性为true.2. private sub form_Queryunload() cmdExit_click end sub3. 用API, setwindowspos
if keyascii=13 then
call command_click()
endif
2、在form_queryunload()事件里写
call command_click()
3、可以用form1.show 1 ,好使窗体模式显示。或者使用api函数
4、toolbar 需要和imagelist一起使用,imagelist里存放工具栏上将要显示的图标。具体的用法你自己下载一个例子好吗?
private sub form_unload()
cmdExit_click
end sub3. 用API, setwindowspos4. 你想怎么用?
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then '单击了回车按钮
Call Command1_Click
End If
End Sub
2、在Form_Unload事件中写入
Private Sub Form_Unload(Cancel As Integer)
Call cmdExit_Click
End Sub
Option ExplicitPrivate Sub Command1_Click()
MsgBox "按钮被点了!"
End SubPrivate Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
Command1_Click
End If
End Sub
第二个问题:
Private Sub Form_Unload(Cancel As Integer)
Command2_Click
End SubPrivate Sub Command2_Click()
MsgBox "退出按钮被点了!"
End Sub第三个问题:
Option Explicit
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Sub Form_Load() SetWindowPos Me.hwnd, -1, 0, 0, 0, 0, &H1 Or &H2 'conSwpNoActivate Or conSwpShowWindow '使窗体一直置于最顶层
End Sub
选中,点击“确定”这时,在工具栏就会多出来八个控件,其中第一个就是“ToolBar”把它拖动VB的窗体上,它会自动的跑到最上方,然后在你在“ToolBar”上点击鼠标右键,选择properties(属性),就会弹出“ToolBar”配置界面。
问题1:设置按钮的default属性可以,但”在keypress事件里 if keyascii=13 then call command_click() endif”为什么不可以呢?焦点一直在textbox里.
问题2:在form_queryunload()事件里写 call command_click()可以解决,但在unload事件里写不能实现,因为有时候不是点击退出而退出的。
问题3:form1.show可以显示但是鼠标点击其他窗体这个窗体就会跑到其他窗体的下面,用API函数SETWINDOWPOS函数来设置我不会怎么用呀?
问题4:我就是不知道怎么用才问的,在那里可以下载例子,能不能推荐一些?谢谢大家帮忙
Static a As Integer
Dim b As Integer
a = a + 1
b = b + 1
MsgBox "a=" & a & vbCrLf & "b=" & b
End SubPrivate Sub Command2_Click()
Dim frm As New Form3
Form3.Show
End SubPrivate Sub Form_Load()
Command1.Caption = "点击"
Command2.Caption = "退出"
End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Call Command2_Click
End Sub
form1有两个按钮分别是show,exit点击show,form2.show并且unload form1,点击exit,unload form1,希望点击窗体右上角的“叉”后实现unload form1.
Dim frm As New Form2
Form2.show
Unload Me
End Sub
Private Sub exit_Click()
Dim frm As New Form3
Form3.show
Unload Me
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If Form2.Visible = flase Then
Call exit_Click
End If
End Sub
ByVal X As Single, ByVal Y As Single) As Boolean
Declare Function SetShowIdx Lib "system32" (ByVal nIndex As Integer, _
ByVal nShow As Boolean) As BooleanPublic Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, _
ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, _
ByVal Cx As Long, ByVal Cy As Long, ByVal wFlags As Long) As Long
'可能上面的代码用不到,小弟我忘了
Public Const HWND_TOPMOST = -1
Public Const HWND_NOTOPMOST = -2
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOSIZE = &H1
Public Const SWP_SHOWWINDOW = &H40
Public Const SWP_NOACTIVATE = &H10Public Sub OnTop(Handle As Long, Top As Boolean) Dim PosFlag As Long, wFlags As Long
wFlags = SWP_NOMOVE Or SWP_NOSIZE Or SWP_SHOWWINDOW Or SWP_NOACTIVATE
If Top = True Then
PosFlag = HWND_TOPMOST
Else
PosFlag = HWND_NOTOPMOST
End If
SetWindowPos Handle, PosFlag, 0, 0, 0, 0, wFlags
End SubPrivate Sub Form_Activate()
OnTop hwnd, True
End Sub
Private Sub DataGrid1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
MsgBox ("enter")
End If
End Sub
Private Sub mnuSqlb_Click(Index As Integer)
FrmApplyTyp.Show
FrmApplyTyp.ZOrder 0
End Sub
ToolBar
1,控制某个按钮无效
toolbar1.Buttons(1).Enabled =True
toolbar1.Buttons(1).Enabled =false
3, 获取当前按钮的事件
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Dim SelStr As String
SelStr = UCase$(Button.Key) Select Case SelStr
Case "Q"
MsgBox "ok"
Case "U"
Case "D"
End Select
Exit Sub
End Sub
private sub form_Queryunload()
cmdExit_click
end sub3. 用API, setwindowspos