在WinForms c#中获得集中控制的最快方法?
我在我的主窗体窗口中使用ProcessCmdKey,以便应用程序测试某些键并给出Space,Right,Left和其他一些特殊处理。 即使用户在嵌套的用户控件集中键入TextBox,也会调用主窗体中的ProcessCmdKey。 当他们专注于TextBox控件时,我不想处理Space键,因为他们永远无法键入空格。 如何在应用程序范围内测试当前聚焦窗口的类型?
您可以使用以下方法获取窗口句柄:
[DllImport("user32.dll")] private static extern IntPtr GetFocus();
然后,您可以使用Control.FromHandle获取与该句柄相关联的.NET控件(如果有)。
找到似乎有用的东西:
上述就是C#学习教程:在WinForms c#中获得集中控制的最快方法?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
[DllImport("user32.dll")] static extern IntPtr GetFocus(); protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { IntPtr wndHandle = GetFocus(); Control focusedControl = FromChildHandle(wndHandle); if(focusedControl is DevExpress.XtraEditors.TextBoxMaskBox) { return base.ProcessCmdKey(ref msg, keyData); } ... }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1020381.html