winforms应用程序如何在没有焦点的情况下接受用户输入?

时间:2011-01-11 23:22:18

标签: c# winforms focus user-input

我正在使用http://inputsimulator.codeplex.com/托管的项目。它使用默认的Microsoft键盘输入代码向SendKeys实际按下了什么键。

如果我必须使用winform作为键盘来执行键盘功能,如Microsoft的工具,屏幕键盘,我必须将焦点放在需要编辑的应用程序上。

比方说,我必须在Word中键入文档,因此它具有焦点。但是,当我单击表单按钮时,焦点转移到我的表单,没有任何内容写在Word上。

因此...

我想要的是制作一个不需要聚焦但功能正常的表单控件。

2 个答案:

答案 0 :(得分:2)

WS_EX_NOACTIVATE窗口样式标志旨在执行此操作。这是一个实现它的示例表单:

public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
        this.TopMost = true;
    }
    protected override CreateParams CreateParams {
        get {
            var cp = base.CreateParams;
            cp.ExStyle |= 0x08000000; // Turn on WS_EX_NOACTIVATE;
            return cp;
        }
    }
}

答案 1 :(得分:1)