单击时动态更新文本框

时间:2019-02-04 03:54:09

标签: c# winforms

我有一个非常老的Windows Form应用程序,该应用程序是由其他人编写的,在较新的操作系统下不能很好地运行,因此我将其复制到C#中以供个人在较新的PC上使用。我有2个文本框,textBox1的默认值为1textBox2被设置为Read Only。我将下面的代码放入Form1()方法中,以便它在打开时具有初始计算值。

我想做的是获取textBox1的值,将其乘以360,然后用结果更新textBox2的值。现在,我认为通过以下操作很容易:

textBox2.Text = (Convert.ToInt32(textBox1.Text) * 360).ToString();

但是我也想动态地执行此操作,因此可以将textBox1中的值更改为2,单击进入Windows窗体上的另一个文本框,然后将textBox2更改为{{1} },然后可以单击回到640,将值更改为textBox1,然后在再次单击另一个文本框后,将值更改为4。我已经看到了一些背景工作人员的示例,这些示例我确实感到非常困惑,无论如何,这是一个非常简单的计算,因此最终用户在计算和更新文本值时永远不会注意到稍有停顿。我希望有一种更简单的方法来获得此结果。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您是否考虑过注册事件?特别是OnTextChange。您要做的就是为OnTextChange事件注册一个事件处理函数,该函数将在您在文本框中键入数字时运行,例如:

textbox1.OnTextChange=someFunc;
...

答案 1 :(得分:0)

感谢Ramesh,我能够解决这个问题。我进入textBox的事件,添加了一个请假事件,并在其中添加了我的计算代码。现在,当我单击该框时,它将根据textBox2中的值来计算textBox1中的值。

https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.control.leave?redirectedfrom=MSDN&view=netframework-4.7.2