在与之交互时禁用第二种形式的焦点,将注意力集中在主要形式上

时间:2015-03-03 19:58:58

标签: c#

这是我的第一个问题。我上周开始学习使用C#进行编码,遇到了以下问题,我无法找到答案(我以前的编程经验是使用C语言的微控制器,所以我还是习惯了面向对象的方法)。

我有一个调用第二种形式的表单(就像屏幕键盘一样)。我希望第二种形式在点击它的按钮时不要聚焦,这样如果选择了第一种形式的文本框,键将被发送给它。

在第二种形式中使用p.ExStyle |= 0x8000000;适用于任何其他窗口(如记事本)但不适用于第一种形式,当第二种形式与之交互时,它会失去焦点。我试图实现的目标是什么?

Form1中:

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        Form2 frm2 = new Form2();

        private void button1_Click(object sender, EventArgs e)
        {
            frm2.Show();
        }

    }

窗体2:

public partial class Form2 : Form
    {
        protected override CreateParams CreateParams // do not activate window when interacted with
        {
            get
            {
                CreateParams p = base.CreateParams;
                p.ExStyle |= 0x8000000;
                return p;
            }
        }
        public Form2()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            SendKeys.Send("test");
        }
    }

Screenshot of the forms

0 个答案:

没有答案