c#应用程序与屏幕键盘

时间:2013-10-26 22:11:18

标签: c#

我正在用c#创建一个Windows表单应用程序,并为这个应用程序创建屏幕键盘,我有一些问题,因为我不知道该怎么做。

我有什么

  
      
  • Form1,文本框很少,文本框很少。
  •   
  • panel1 with richtextbox和5个按钮(A,B,C,DEL,ENTER)。
  •   

我想要什么?

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

当我点击文本框或richtextbox(我使用“Enter”事件)时,我已经将panel1显示出来,当我点击“ENTER”按钮时,panel1将隐藏。是否有任何其他方法可以在每次单击textbox或richtextbox时显示panel1而不为每个编码“Enter”事件?

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

  
    

textBox1.Text = richTextBox1.Text;

  

将文本从richtextbox1传回文本框是我的主要问题......我有解决方案,但我正在寻找一个正确而简单的解决方案...我的解决方案太过于无聊和复杂......

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

我的英语不是我的主要语言,所以如果您无法理解,请回复,我会尽力解释。

感谢大家的时间。

1 个答案:

答案 0 :(得分:0)

我会这样做:

  1. 创建一个基本用户控件,该控件派生自Textbox(如果您只使用文本框),或者来自Control,如果不会使用多个文本框。

  2. 处理“Enter”事件,就像在基类中一样处理。

  3. 创建将从EventArgs类派生的类,该类将存储yout控件的值。我们现在称之为“TextboxArgs”。

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

  5. 在您的面板中订阅此活动,以便它能够做出正确的反应。

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