读书人

怎么实现像系统软键盘那样的顶层窗体?

发布时间: 2012-08-15 16:57:16 作者: rapoo

如何实现像系统软键盘那样的顶层窗体?让窗体能始终盖住已经设置为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实现软键盘平时隐藏,用的时候让其显示。

读书人网 >C#

热点推荐