1 - так и покажите где и как обявлен
label2
2 - и где, по отношению к ней, находится код, который пытается нзменить
label2
3 - приведите убедительные доказательства, что этот код кообще реально вызывается (да, и такие ошибки бывают. но тут достаточно break point в студии поставить)
.. вам надо показать всю картину. по тому что по общему описанию, вы ловите проблему, которой действительно не должно быть в
WinForms
вольная фантазия - возможно вы повесили модификатор
public на метод, который пытается изменить
label2, но возможно умудрились
label2 сделать недоступным. по дефолту визуального конструктора, он скоре всего так
public, но может это вторичная фрма? которую вы всю всю сделали
private?... (хотя тут и компилятор бы ругнулся..) тем не менее - без полной картины качественный ответ невозможн
звиняйте экстрасенсы в отпуске (с) ))ps старый и слепой (((int score=0;
label2.Text = "хоть что то";
while (score <= 0)
{
score = textBox1.TextLength;
richTextBox1.Text += score;
if(score>0)
label2.Text = score.ToString();
}
это на 100% бесконечный цикл. он имеет шанс на выход, только в случае, если
score имеет отрицательное значение. но...
- мы имеем инициализацию
int score=0;, мало того, изначальное инициализиреуем
label2 не пустым значением, а это будет только
подливать керосина в костер, но уже в теле цикла
- далее бесконечно
score = textBox1.TextLength; вот только это значение ни когда не может быть отрицательным (а судя по остальному коду цикла, даже вряд ли нулевым хоть когда либо)
- и напомниню исловие цикла
while (score <= 0) (то есть
равенство нулю допустимо волею автора изначально) прервать эту вакханалию может только отрицтельное значение.. ну или
break; по какому то осмысленному условию, которое реально может наступить в достаточно короткие сроки.. а не через годы, а то ведь
бешатой собаке семь верст не круг (с)
похоже что все у вас происходит, только название этому -
зависание (по заумному -
бесконечный цикл)