2015-12-07 2 views
-1

Я хочу преобразовать целое число от TextBox в другое TextBox. У меня есть этот код, но он только преобразуется в начале, и ничего не меняется, когда я изменяю TextBox.Two 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(); 
    } 
} 

Как BtextBox изменения каждый раз, когда я изменить AtextBox?

+0

В событии textChanged (или аналогичном) установите BtextBox.Text = AtextBox.text. – Mathemats

+0

BTW, я очень уверен, что приведенный выше код работает до 100 раз медленнее, чем может. – dotNET

ответ

2

Необходимо использовать события. Создайте обработчик события TextChanged.

Есть два способа сделать это:

  1. Открытого конструктор, открытыми свойства Atextbox, найти TextChanged события и нажмите дважды.
  2. Поскольку TextChanged это событие по умолчанию для TextBox, просто щелкните 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 и применить его к другому текстовому полю.
И, да, вам не нужна петля.

+0

Большое спасибо – Mirza

+0

umm строка 'Btextbox.Text = (100 - значение) .ToString();' получена ошибка: ссылка объекта не установлена ​​в экземпляр объекта. Зачем? – Mirza

+0

@Mirza Единственное, что может случиться, это то, что 'Btextbox' равно null. http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it –