如何制作第三个文本框取决于c#NET中的第一个和第二个文本框
我遇到了这样的问题或这种情况的问题。我有五个文本框,其中前两个如何制作第三个文本框取决于c#NET中的第一个和第二个文本框,c#,asp.net,C#,Asp.net,我遇到了这样的问题或这种情况的问题。我有五个文本框,其中前两个textbox用户需要输入任何值,然后下两个文本框将通过使用插入的值和某些条件来显示结果。最后,另一个文本框将根据显示的结果显示新结果 这就是我曾经尝试过的: private void textBox3_TextChanged(object sender, EventArgs e) { float value; if (float.TryParse(textBox3.Text, out value)) {
textbox
用户需要输入任何值,然后下两个文本框将通过使用插入的值和某些条件来显示结果。最后,另一个文本框将根据显示的结果显示新结果
这就是我曾经尝试过的:
private void textBox3_TextChanged(object sender, EventArgs e)
{
float value;
if (float.TryParse(textBox3.Text, out value))
{
if (value < 1)
{
textBox4.Text = "1C";
}
else if (value >= 1 && value <2)
{
textBox4.Text = "5T";
}
else if (value >= 2)
{
textBox4.Text = "NG";
}
}
else
{
textBox4.Text = "";
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
float value;
if (float.TryParse(textBox1.Text, out value))
{
if (value < 2)
{
textBox2.Text = "2T";
}
else if (value < 5 || value==2)
{
textBox2.Text = "5T";
}
else if (value > 5 )
{
textBox2.Text = "NG";
}
else
{
textBox2.Text = "NG";
}
}
else
{
textBox2.Text = "";
}
}
首先,与您的textBox3\u TextChanged
不同,您在textBox1\u TextChanged
中的条件可以这样简化
private void textBox1_TextChanged(object sender, EventArgs e)
{
float value;
if (float.TryParse(textBox1.Text, out value))
{
if (value < 2)
{
textBox2.Text = "2T";
}
else if (value < 5) //value==2 can be removed since it is covered in value < 5
{
textBox2.Text = "5T";
}
else //simply put else here, it is equivalent to what you did
{
textBox2.Text = "NG";
}
}
else
{
textBox2.Text = "";
}
}
当textBox2
和textBox4
中的文本发生更改时,不太可能执行该命令。所有初始化实际上都是在Form1()
构造函数中完成的,在InitializeComponent
之后,而不是在Form1\u Load
为了安全起见,您应该为textBox2
和textBox4
创建事件处理程序,就像您对textBox1
和textBox3
private void textBox2_TextChanged(object sender, EventArgs e)
{
textBox84.Text = textBox2.Text == "NG" && textBox4.Text == "NG" ? "s" : "";
}
private void textBox4_TextChanged(object sender, EventArgs e)
{
textBox84.Text = textBox2.Text == "NG" && textBox4.Text == "NG" ? "s" : "";
}
这样,您的textBox84
真正响应textBox2
和textBox4
TextChanged
事件,而不是Form1\u Load
事件
旁注:
表情
if (textBox2.Text == "NG" && textBox4.Text == "NG")
textBox84.Text = "s";
else
textBox84.Text = "";
可以进一步简化为
textBox84.Text = textBox2.Text == "NG" && textBox4.Text == "NG" ? "s" : "";
如果使用三值运算符是否已为Textbox1和Textbox3设置AutoPostBack=“True”?尚未设置。等等,我试试first@KiranHegde是从属性设置它的方法吗?非常感谢@Ian。它解决了问题!!!超级棒!!也谢谢你的解释和提示,我现在明白了,很高兴知道这一点这里的底线是,您真正编写了一些代表真实情况的代码,并且没有什么不同。例如,在这种情况下,由于您希望根据textBox2
和textBox4
更改textBox84
,因此您应该按原样编码。)
if (textBox2.Text == "NG" && textBox4.Text == "NG")
textBox84.Text = "s";
else
textBox84.Text = "";
textBox84.Text = textBox2.Text == "NG" && textBox4.Text == "NG" ? "s" : "";