每次聚焦文本框时如何打开表单?

How can i open a form everytime a textbox is focused?

我正在开发触摸屏显示器的键盘,我需要知道如何编写通用代码,以便每次聚焦任何文本框时,都会打开表单(键盘)。我知道我可以把每个文本框的事件焦点放在一起,但我想做一个通用代码。我正在使用 WCE8 和 .net compact framework 3.5。

您可以创建自己的自定义控件并覆盖 OnGotFocus 函数

public partial class FocusTextBox : TextBox {
    public FocusTextBox() {}

    protected override void OnGotFocus(EventArgs e) {
        // Your code to open the keyboard here

        base.OnGotFocus(e);
    }
}

您可以在您的控件中找到所有控件类型的文本框,并为它们提供带有 foreach 的点击事件,例如

foreach(Control ctrl in panel1.Controls)
        {
            if(ctrl is TextBox)
            {
                ctrl.Click += new EventHandler(OpenSecondForm_Click); 
            }
        }

private void OpenSecondForm_Click(object sender, EventArgs e)
    {
        Form2 form = new Form2();
        form.Show();
    }

这样,每次你选中任何一个文本框,它都会打开第二个表单,希望对你有所帮助。