Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 两个绑定了不同值的文本框_C#_Loops - Fatal编程技术网

C# 两个绑定了不同值的文本框

C# 两个绑定了不同值的文本框,c#,loops,C#,Loops,我想将整数从TextBox转换为另一个TextBox。我有这段代码,但它只在开始时转换,当我更改文本框时,不会转换任何形状笔 int j = 100; int value = 0; for (int i = 0; i <= j; i++) { if (AtextBox.Text == i.ToString()) { value = j - i; BtextBox.Text = value.ToString(); } } intj=1

我想将整数从
TextBox
转换为另一个
TextBox
。我有这段代码,但它只在开始时转换,当我更改
文本框时,不会转换任何形状笔

int j = 100;
int value = 0;
for (int i = 0; i <= j; i++)
{
    if (AtextBox.Text == i.ToString())
    {
        value = j - i;
        BtextBox.Text = value.ToString();
    }
}
intj=100;
int值=0;

对于(int i=0;i您需要使用事件。创建
TextChanged
事件处理程序

有两种方法可以做到这一点:

  • 打开设计器,打开
    Atextbox
    的属性,找到
    TextChanged
    事件并单击两次
  • 由于
    TextChanged
    TextBox
    的默认事件,只需在designer中单击两次
    TextBox
  • Visual Studio将创建以下处理程序:

    public void Atextbox_TextChanged(object sender, EventArgs e) ...
    
    只需将您的代码添加到其中:

    public void Atextbox_TextChanged(object sender, EventArgs e)
    {
       int value;
       if (int.TryParse(Atextbox.Text, out value))
       {
           Btextbox.Text = (100 - value).ToString();
       }
    }
    
    每次更改
    Atextbox
    的内容时,它都会触发此事件,该事件将解析文本框中的整数,将其从100中减去,并将其应用于另一个文本框。

    是的,这里不需要循环。

    在textChanged事件(或类似事件)上设置BtextBox.Text=AtextBox.Text.BTW,我非常肯定上面的代码运行速度比它慢100倍。嗯,行
    BtextBox.Text=(100-value).ToString()
    发生错误:对象引用未设置为对象的实例。为什么?@Mirza唯一可能发生的事情是
    Btextbox
    为null。但它不是null,我有默认值Btextbox,我也尝试在if语句之前填充
    Btextbox.Text=“100”
    ,但仍然得到相同的错误