Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / На вид все нормально, в итоге бред / 9 сообщений из 9, страница 1 из 1
03.02.2005, 05:49
    #32898257
Hup
Hup
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На вид все нормально, в итоге бред
Подскажите, почему в приведоном коде возникает переполнение стека?
Очевидно, что это происходит при записи данных в textBox3.Text или textBox4.Text. Еще заметил, что textBox5_TextChanged зацикливается... Почему? Бред какой-то =( Создал массу подобных функций и все работают корректно.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
		private void textBox5_TextChanged(object sender, System.EventArgs e)
		{
			try
			{
				double itog;
				double _ye;
				double zach;
 
				if(textBox5.Text != "") itog = Convert.ToDouble(textBox5.Text);
				else itog = 0;
			
				this.initil();

				zach = (itog - (itog*this.pers/100.0));
				_ye = zach/this.ye; 

				textBox3.Text = zach.ToString();
				textBox4.Text = _ye.ToString();
			}
			catch(Exception ex)
			{
				MessageBox.Show(ex.ToString());
			}
		}

		private void initil()
		{
			this.ye = Convert.ToDouble(textBox1.Text);
			this.pers = Convert.ToDouble(textBox2.Text);
		}
--
Хочешь избежать критики – ничего не делай, ничего не говори и будь никем.
...
Рейтинг: 0 / 0
03.02.2005, 09:25
    #32898390
Secret
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На вид все нормально, в итоге бред
Для поиска логических ошибок существует отладчик. Попробуйте в режиме отладки выполнить код построчно и выяснить, почему вызываются методы (что и приводит к переполнению стека).
...
Рейтинг: 0 / 0
03.02.2005, 10:09
    #32898487
Hup
Hup
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На вид все нормально, в итоге бред
Secret , отладчике я и заметил, что этот код выполняется многократно. Почему? В остальном все впорядке.
--
Хочешь избежать критики – ничего не делай, ничего не говори и будь никем.
...
Рейтинг: 0 / 0
03.02.2005, 10:47
    #32898576
Bigheadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На вид все нормально, в итоге бред
А для textBox3 и textBox4 обработчик OnTextChanged задан? Тогда естественно, что попадаем опять в textBox5_TextChanged на строке
Код: plaintext
textBox3.Text = zach.ToString();

Как раз под отладчиком в пошаговом режиме это хорошо можно увидеть.
...
Рейтинг: 0 / 0
03.02.2005, 11:11
    #32898620
Roman S. Golubin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На вид все нормально, в итоге бред
Hup Secret , отладчике я и заметил, что этот код выполняется многократно. Почему? В остальном все впорядке.


А в событиях textBox3_TextChanged или textBox4_TextChanged содержимое textBox5 не меняется?


Hup
Хочешь избежать критики – ничего не делай, ничего не говори и будь никем.


Не согласен!!! - на никого обычно все шишки и валятся...
...
Рейтинг: 0 / 0
03.02.2005, 13:47
    #32899117
Hup
Hup
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На вид все нормально, в итоге бред
Для textBox3 и textBox4 заданы обработчики и в них меняется содержимое textBox5/// Вы хотите сказать, что изменеие textBox5 в одном обработчике( например в textBox4_TextChanged) может автоматом вызвать textBox5_TextChanged и тем самым образуется dead cycle с последующим переполнением стека? А почему тогда textBox3 и textBox4 не конфликтуют? Они тоже изменяют друг друга. И как тогда такое лечить?

--
Хочешь избежать критики – ничего не делай, ничего не говори и будь никем.
...
Рейтинг: 0 / 0
03.02.2005, 14:43
    #32899295
Secret
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На вид все нормально, в итоге бред
HupИ как тогда такое лечить?

Код: plaintext
1.
2.
3.
textBox5.TextChanged -= new System.EventHandler(this.textBox5_TextChanged);
textBox5.Text=...;
textBox5.TextChanged += new System.EventHandler(this.textBox5_TextChanged);
...
Рейтинг: 0 / 0
04.02.2005, 02:06
    #32900408
Hup
Hup
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На вид все нормально, в итоге бред
Secret , весьма интересный способ. Вечерком проверю =)))
--
Хочешь избежать критики – ничего не делай, ничего не говори и будь никем.
...
Рейтинг: 0 / 0
07.02.2005, 07:00
    #32903307
Hup
Hup
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
На вид все нормально, в итоге бред
Спасибо... Все заработало =)
--
Хочешь избежать критики – ничего не делай, ничего не говори и будь никем.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / На вид все нормально, в итоге бред / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]