如何实现像系统软键盘那样的顶层窗体?让窗体能始终盖住已经设置为topmost的窗体,包括失去焦点时?
我的主程序用的是一个全屏的topmost窗体。
现在需要做一个类似软键盘的东西。
软键盘窗体,我首先设置为浮动工具条窗体,不抢占焦点。
- C# code
#region 浮动工具条窗体 private const int WS_EX_TOOLWINDOW = 0x00000080; private const int WS_EX_NOACTIVATE = 0x08000000; // 浮动工具条窗体 protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= (WS_EX_NOACTIVATE | WS_EX_TOOLWINDOW); cp.Parent = IntPtr.Zero; // Keep this line only if you used UserControl return cp; //return base.CreateParams; } } #endregion
然后设置了topmost,由主程序打开。
但是软键盘窗体在失去焦点时又会被主窗体盖住。
同时topmost,应该是谁获得焦点谁在最前边。
如何才能像系统软键盘那样始终显示在最顶层呢?
不管有没有得到焦点,始终能盖住已设置了topmost的窗体。
[解决办法]
c#中设置form属性topmost
[解决办法]
如何才能像系统软键盘那样始终显示在最顶层呢?
不管有没有得到焦点,始终能盖住已设置了topmost的窗体。
主窗体拉个panel实现软键盘平时隐藏,用的时候让其显示。