Texbox在C#中复制另一个文本框
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Texbox在C#中复制另一个文本框相关的知识,希望对你有一定的参考价值。
我正在使用WinForm。我有2个文本框。
目标:我希望textBox1镜像我在textBox2中输入的数字
问题:所有数字都有效,除非我在开头输入0。
测试用例:
textBox1 = 1203 - 正确的作品
textBox2 = 1203 - 正确的作品
textBox1 = 0123 - 有效
textBox2 = 123 - 与textBox1不匹配
private void textBox1_TextChanged(object sender, EventArgs e)
{
try
{
int numb1, result;
numb1 = Convert.ToInt32(textBox1.Text);
result = numb1;
textBox2.Text = result.ToString();
}
catch (Exception)
{
textBox2.Text = "";
}
}
答案
由于您的文本字符串转换为数字,这是预期的。前导零在数字中没有意义,当您将该数字转换回字符串时,将不会有前导零。因此,只需复制Text属性而不进行转换。
但是,如果此代码是验证输入的暂定,则使用Int32.TryParse
而不是Convert.ToInt32
private void textBox1_TextChanged(object sender, EventArgs e)
{
int numb1;
if(Int32.TryParse(textBox1.Text, out numb1))
textBox2.Text = textBox1.Text;
else
{
MessageBox.Show("Invalid number");
textBox2.Text = "";
}
}
Int32.TryParse删除了使用try / catch的必要性,因为如果转换失败,则只返回false。相反,Convert.ToInt32会引发异常。一般而言,如果您有可能避免异常,那么请使用这种可能性而不是驱动您的逻辑捕获异常
另一答案
试试这个:
textBox1.Text = int.Parse(textBox2.Text) == 0 ? "0" : textBox2.Text;
以上是关于Texbox在C#中复制另一个文本框的主要内容,如果未能解决你的问题,请参考以下文章
在 Visual Studio 2010 中锁定 texbox 滚动条