Csharp/C#教程:不重视,但允许互动?分享


不重视,但允许互动?

Windows 7中的屏幕键盘可让您在使用键盘输入时将焦点保持在文本框上。 在C#和.Net中,如何在接受输入时强制另一个应用程序保持焦点,就像Win7屏幕键盘一样? 或者也许是一个更好的方式来表达它,我怎么能不让我的应用程序在与之交互时关注?

我尝试过LockSetForegroundWindow并且没有看到它的结果。

您必须在WS_EX_NOACTIVATE上设置WS_EX_NOACTIVATE扩展样式。 最简单的方法是使用P / Invoke。

 private const int WS_EX_NOACTIVATE = 0x08000000; private const int GWL_EXSTYLE = -20; [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] private static extern int GetWindowLong(IntPtr hwnd, int index); [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] private static extern int SetWindowLong(IntPtr hwnd, int index, int newStyle); ... var window = new Window(); window.SourceInitialized += (s, e) => { var interopHelper = new WindowInteropHelper(window); int exStyle = GetWindowLong(interopHelper.Handle, GWL_EXSTYLE); SetWindowLong(interopHelper.Handle, GWL_EXSTYLE, exStyle | WS_EX_NOACTIVATE); }; window.Show(); 

您还可以使用WPF互操作类HwndSource来创建窗口。 它的构造函数接受扩展窗口样式。

上述就是C#学习教程:不重视,但允许互动?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1016802.html

(0)
上一篇 2021年12月31日
下一篇 2021年12月31日

精彩推荐