Рейтинг:
4
Patrice T
Вы должны научиться использовать отладчик как можно скорее. Вместо того чтобы гадать, что делает ваш код, пришло время увидеть, как он выполняется, и убедиться, что он делает то, что вы ожидаете.
Отладчик позволяет вам следить за выполнением строка за строкой, проверять переменные, и вы увидите, что есть точка, в которой он перестает делать то, что вы ожидаете.
Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
Когда код не делает того, что ожидается, вы близки к ошибке.
Charvi Janathri
Большое вам спасибо я буду использовать отладчик :)
Рейтинг:
15
OriginalGriff
Цитата:
не передается в текстовое поле 1
Ну... наверное, это и к лучшему.
Посмотрите на свой код - и я вырву ненужные вещи - и совершенно очевидно, что у вас есть проблема:
textBox1_TextChanged(object sender, EventArgs e)
{
...
textBox1.Text = OTRate.ToString();
}
Итак...когда Textbox1 изменяется, вы устанавливаете новое значение для Textbox1. Что приводит к возникновению измененного события, и это означает, что вы обрабатываете событие, которое...снова изменяет Textbox1. И это повторяется до тех пор, пока всем не надоест или вы не убьете приложение.
Я не думаю, что вы хотите обрабатывать событие TextChanged, чтобы сделать это - и если вы это сделаете, вы, конечно же, не хотите изменять текст внутри него!
Charvi Janathri
Тогда как я могу показать результат, который я получаю в textbox1?
OriginalGriff
Вероятно, не обрабатывая это событие TextChanged, а вместо этого работая с событиями ComboBox?
Charvi Janathri
хорошо, тогда я должен использовать щелчок кнопки, чтобы справиться с этим, и когда я использую щелчок кнопки, значение, которое я получаю, всегда равно 0, я не знаю, почему он не дает вычисленного ответа
OriginalGriff
Начните немного изменять его и посмотрите, что вы получите с помощью отладчика:
double d = (double)(comboBox3. SelectedItem);
int i = (int)(comboBox6. SelectedItem);
двойной Отрат = d * i;
Поставьте точку останова в последней строке и используйте отладчик, чтобы посмотреть значения в d и i.
Мы не можем сделать это для вас - у нас нет доступа к комбо-боксам!
Charvi Janathri
проблема в том что я не знаю как отлаживать но теперь я учусь этому большое спасибо за вашу помощь я сделаю то что вы сказали :) Спасибо!
OriginalGriff
Это довольно просто!
Начните с установки точки останова в строке: наведите курсор на строку, которую вы хотите установить, и используйте меню: "отладка...Переключить точку останова". Линия изменится на красный фон, а слева появится красная точка. Нажмите на точку, и она исчезнет, как и красный фон-щелчок есть быстрый способ добавления и удаления точек останова, поэтому нажмите еще раз, и она вернется.
Теперь запустите свою программу в отладчике, нажав клавишу F5. Когда выполнение достигнет точки останова, оно остановится и позволит вам взять управление на себя.
Есть много вещей, которые вы можете сделать сейчас,но самые основные - и самые полезные - это "один шаг" и просмотр переменных.
Смотреть на переменные легко: наведите курсор мыши на имя переменной, и отладчик покажет вам, что она содержит.
"Single stepping" - это выполнение вашей программы по одной строке за раз, и вы можете сделать это с помощью появившейся новой панели инструментов (наведите курсор мыши на кнопки, пока не найдете" Step into "и" Step over") в тот момент, когда вы хотите" Step over", что также является F10.
Пойдите - там много чего есть, но только этого мало достаточно для 90% поиска ошибок!