带有屏幕键盘的 C# 应用程序

本文关键字:应用程序 键盘 屏幕 | 更新日期: 2023-09-27 18:36:56

我正在用 c# 制作一个 Windows 表单应用程序,并为这个应用程序创建屏幕键盘,我对此有一些问题,因为我不知道如何做一些事情。

我有什么

  • 具有少量文本框和少量富文本框的 Form1。
  • 面板 1 带有丰富文本框和 5 个按钮(A、B、C、DEL、ENTER)。

我想要什么?

  • 每次我单击任何文本框或任何富文本框时,我都希望 panel1 显示出来。
  • 我希望我单击的文本框中的文本显示在 panel1 上的富文本框中。
  • 当我单击面板1上的"ENTER"按钮时,我希望将面板1上的富文本框中的文本传输到我之前单击的文本框中。(当然,面板 1 会在那之后隐藏)。

我已经制作了 panel1 在我单击文本框或富文本框时显示(我使用了"输入"事件),当我单击"ENTER"按钮时,panel1 将隐藏。有没有其他方法可以在每次单击文本框或富文本框时显示panel1,而无需为每个文本框编码"Enter"事件?

现在最难的部分是将文本从表单传输到面板,反之亦然。为了从单击的文本框传输文本,我只需在"Enter"事件中添加了一行代码:

文本框1.文本 = 富文本框1.文本;

将文本从富文本框1传输回文本框是我的主要问题...我有解决方案,但我正在寻找一个正确而简单的解决方案......我的解决方案太菜鸟和复杂了...

将在这里解释我在寻找什么:例如,如果 int 可以记住数字,字符串可以记住文本。我想要一些可以记住我上次点击的文本框的东西。我希望你能理解我的意思。

我的英语不是我的主要语言,所以如果你什么都听不懂,请回复,我会尽力解释。

谢谢大家抽出宝贵时间。

带有屏幕键盘的 C# 应用程序

我会这样做:

  1. 创建派生自 Textbox(如果仅使用文本框)或从控件派生的基用户控件(如果使用的文本框多

  2. )。
  3. 像现在在该基类中一样处理"Enter"事件。

  4. 创建将从 EventArgs 类派生的类,该类将存储 ut 控件的值。现在让我们称之为"TextboxArgs"。

  5. 在基本用户控件中,创建一个事件并在您拥有的"Enter"处理程序中引发它,并使用步骤 3 中的"TextboxArgs"类将文本作为事件参数传递。

  6. 在您的面板中订阅此事件,以便它做出适当的反应。

现在,只需使用每个文本框的这个基本用户控件,它将引发一个事件并将其值作为参数传递。小组将对此作出回应。如果您这样做,那么无论您添加多少文本框,您都不需要任何额外的编码。