通过按下按钮更改状态Visible为True的字符 [英] change the character of the state Visible as True by pressing a button
本文介绍了通过按下按钮更改状态Visible为True的字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何将一个特殊的表格Visible = False作为按下按钮(例如ctrl或alt + k)来改变状态Visible为True的字符?
How can a form that is characteristic Visible = False it as pressing a button ( For example ctrl or alt + k) to change the character of the state Visible as True?
推荐答案
我认为你的意思是询问如何使用热键在True和False之间切换表单的Visible属性。如果是这样,那么你可以这样做:
I think you mean to ask how to use a hotkey to toggle the form's Visible property between True and False. If this is so, then you can do it like this:
Imports System.Runtime.InteropServices
Public Class Form1
' WM_HOTKEY Message Ref: http://msdn.microsoft.com/en-us/library/windows/desktop/ms646279%28v=vs.85%29.aspx
Private Const WM_HOTKEY As Int32 = &H312
Private Const MOD_ALT As Int32 = 1 'Alt key modifier for WM_HOTKEY
Private Const MOD_CONTROL As Int32 = 2 'Ctrl key modifier for WM_HOTKEY
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
RegisterHotKey(Me.Handle, 1, MOD_ALT, Keys.K) ' alt-k
RegisterHotKey(Me.Handle, 2, MOD_CONTROL, Keys.K) ' ctrl-K
End Sub
Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
' make sure you unregister the hotkeys
UnregisterHotKey(Me.Handle, 1)
UnregisterHotKey(Me.Handle, 2)
End Sub
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
If m.Msg = WM_HOTKEY Then
Dim key As Keys = CType(m.LParam.ToInt32 >> 16, Keys)
Dim modifier As Int32 = CType((m.LParam.ToInt32 << 16) >> 16, Keys)
Select Case key
Case Keys.K
If modifier = MOD_ALT OrElse modifier = MOD_CONTROL Then toggleVisible()
End Select
End If
MyBase.WndProc(m)
End Sub
Private Sub toggleVisible()
Me.Visible = Not Me.Visible
If Me.Visible Then Me.BringToFront()
End Sub
' ref: http://msdn.microsoft.com/en-us/library/windows/desktop/ms646309%28v=vs.85%29.aspx
<DllImport("User32.dll")> _
Private Shared Function RegisterHotKey(ByVal hwnd As IntPtr, _
ByVal id As Int32, _
ByVal fsModifiers As Int32, _
ByVal vk As Keys) As Int32
End Function
' ref: http://msdn.microsoft.com/en-us/library/windows/desktop/ms646327%28v=vs.85%29.aspx
<DllImport("User32.dll")> _
Private Shared Function UnregisterHotKey(ByVal hwnd As IntPtr, ByVal id As Int32) As Int32
End Function
End Class
这篇关于通过按下按钮更改状态Visible为True的字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文