Как изменить элемент из другого класса?

модификатор поставил на Public, ошибок никаких не выдает. Но так же и не чего не происходит

public  void detects() {
            string TT = null;
            int score=0;

            label2.Text = "хоть что то";
  
            while (score <= 0) {
                    score = textBox1.TextLength;
                    richTextBox1.Text += score;
                    if(score>0)
                    label2.Text = score.ToString();
                }
        }
  • Вопрос задан
  • 166 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Av-IT
Разработчик и админ SQL, консультант
1) Какой именно элемент этого класса хотите менять?
2)
> "Но так же и не чего не происходит"
А как пытаетесь, приведите кусок кода. Какую ошибку получаете?
Ответ написан
mindtester
@mindtester Куратор тега C#
делаю странные вещи..чаще на C#.. иногда за деньги
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; по какому то осмысленному условию, которое реально может наступить в достаточно короткие сроки.. а не через годы, а то ведь бешатой собаке семь верст не круг (с)

похоже что все у вас происходит, только название этому - зависание (по заумному - бесконечный цикл)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы