当我单击Alt + Tab以任何形式它不应该切换到其他形式..它必须聚焦相同的形式..P [英] When I Click Alt+Tab In Any Form It Should Not Switch To Other Form..It Has To Focus The Same Form..P

查看:67
本文介绍了当我单击Alt + Tab以任何形式它不应该切换到其他形式..它必须聚焦相同的形式..P的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Vb.net尝试...没有得到适当的解决方案,请帮助我

解决方案

这不容易:你必须提供全局钩子序列在系统级别识别,而不是在应用程序级别识别。您可能还必须禁用CTRL + ALT + DEL,CTRL + SHIFT + TAB以及其他几个。



假设这不是恶意的程序 - 如果它是你可以去其他地方 - 在现代应用程序中这是一个非常非常糟糕的想法:如果你的应用程序对我这样做,我会以极端的偏见卸载它并要求我的钱!



我建议您不要试图查看 Kiosk模式 [ ^ ]:它适用于单应用程序计算机。


Hello,



有很多方法可以达到这个目的。



T他最简单的方法是创建一个继承自Form的新类并重写方法ProcessCmdKey

当捕获Ctrl-tab键击时,你需要返回False来停止它。



 Public Class MyForm 
Inherits Form

受保护的覆盖函数ProcessCmdKey(_
ByRef msg作为消息,_
ByVal keyData As Keys)As Boolean

Const WM_KEYDOWN As Integer =& H100
Const WM_SYSKEYDOWN As Integer =& H104

If((msg.Msg = WM_KEYDOWN)或(msg.Msg = WM_SYSKEYDOWN))然后
选择Case(keyData)
Case(Keys.Control或Keys.Tab)
'< ; CTRL> +< TAB>捕获
返回False
结束选择
结束如果

返回MyBase.ProcessCmdKey(msg,keyData)
结束函数

结束类





然后使用此类作为MDI父窗口的基础而不是System.Windows.Form



 部分  MdiParent 
继承 MyForm







瓦列。


Am trying in Vb.net...not getting proper solution for this pls help me

解决方案

This is not easy: you have to provide global hooks as the sequence is recognised at the system level, not at application level. You will probably also have to disable CTRL+ALT+DEL, CTRL+SHIFT+TAB, and a couple of others as well.

Assuming this isn't a malicious program - and if it is you can go elsewhere - that is a very, very poor idea in modern apps: if your app did that to me I would uninstall it with extreme prejudice and demand my money back!

I would suggest that instead of trying that you look at Kiosk Mode[^] instead: it's meant for single-application computers.


Hello,

There are many ways to achieve this.

The simplest way is to create a new class that inherits from Form and override the method ProcessCmdKey
When the Ctrl-tab keystroke is captured you need to return False to stop it.

Public Class MyForm
    Inherits Form

    Protected Overrides Function ProcessCmdKey( _
        ByRef msg As Message, _
        ByVal keyData As Keys) As Boolean

        Const WM_KEYDOWN As Integer = &H100
        Const WM_SYSKEYDOWN As Integer = &H104

        If ((msg.Msg = WM_KEYDOWN) Or (msg.Msg = WM_SYSKEYDOWN)) Then
            Select Case (keyData)
                Case (Keys.Control Or Keys.Tab)
                    ' <CTRL> + <TAB> captured
                    Return False
            End Select
        End If

        Return MyBase.ProcessCmdKey(msg, keyData)
    End Function

End Class



Then use this class as the base of your MDI parent window instead of System.Windows.Form

Partial Class MdiParent
    Inherits MyForm




Valery.


这篇关于当我单击Alt + Tab以任何形式它不应该切换到其他形式..它必须聚焦相同的形式..P的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆