我正在用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可以记住数字,字符串可以记住文本。我想要的东西可以记住我上次点击的文本框。我希望你能理解我的意思。
我的英语不是我的主要语言,所以如果您无法理解,请回复,我会尽力解释。
感谢大家的时间。
答案 0 :(得分:0)
我会这样做:
创建一个基本用户控件,该控件派生自Textbox(如果您只使用文本框),或者来自Control,如果不会使用多个文本框。
处理“Enter”事件,就像在基类中一样处理。
创建将从EventArgs类派生的类,该类将存储yout控件的值。我们现在称之为“TextboxArgs”。
在基本用户控件中,创建一个事件并在您拥有的“Enter”处理程序中将其引发,并使用“TextboxArgs”类表单步骤3将文本作为事件参数传递。
在您的面板中订阅此活动,以便它能够做出正确的反应。
现在,只需使用每个文本框的基本用户控件,它就会引发一个事件并将其值作为参数传递。小组将对此作出回应。如果您这样做,那么无论您添加多少个文本框,都不需要任何其他编码。