在文本框中输入值时,是否可以更新标签?
用户可以在一个文本框中输入其等级,然后它将告诉他们该等级的乘数是多少。此刻,当用户在级别字段中输入数字时,乘数不会更新,直到我单击下拉菜单并重新选择我以前使用的选项。
例如;如果用户输入其级别的50,则乘数将为1。如果输入> = 92,则乘数将显示2。但是,由于在文本框中输入值,该乘数不会更新。
目前,对于每个对象,我都将它们放置在Switch Case中,以便于管理。
private void Level_TextChanged(object sender, EventArgs e)
{
RuneMultiplier.Refresh();
}
level
是用户能够放置其关卡的文本框,然后应更新乘数标签。
答案 0 :(得分:0)
好吧,为什么不把它简化一些呢?像这样(以您的示例为例):
private void textBox3_TextChanged(object sender, EventArgs e)
{
if(textBox3.Text == "50")
{
label1.Text = (int.Parse(textBox3.Text) * 1).ToString();
}else if(int.Parse(textBox3.Text) >= 92)
{
label1.Text = (int.Parse(textBox3.Text) * 2).ToString();
}
else
{
//this is not a number, some error message idk..
}
}
每次您在文本框中输入内容时,都会根据您的if条件更新标签或引发一些错误。
编辑
类似这样的东西:
private void textBox3_TextChanged(object sender, EventArgs e)
{
switch (int.Parse(textBox3.Text))
{
case 50:
label1.Text = (int.Parse(textBox3.Text) * 1).ToString();
break;
case int number when number >= 92:
label1.Text = (int.Parse(textBox3.Text) * 2).ToString();
break;
case int number2 when number2 < 50:
label1.Text = (int.Parse(textBox3.Text) * 0).ToString();
break;
default:
//not a number
break;
}
}
答案 1 :(得分:-1)
有不同的方法可以做到这一点 看一下文本框中可用的事件。 例如,您可以使用OnLeave等。
一种更好的方法是通过“ INotifyChanged”方法获得通知,这是从设计的角度来看这样做的根本性更好的方法。
希望这可以帮助您解决问题。