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#中复制另一个文本框的主要内容,如果未能解决你的问题,请参考以下文章

将数据从 .txt 保存并加载到正确的 texbox

在 Visual Studio 2010 中锁定 texbox 滚动条

从另一个线程写入文本框? [复制]

Excel VBA 将文本框(文本和格式)复制到另一个文本框(无 ActiveX / 用户表单)

更多控件具有相同的tabindex时的Tab顺序?

使用jQuery在多个gridview行中将值从一个文本框复制到另一个文本框