2012-06-08 3 views
1

У меня проблемы с выполнением очень простой задачи. У меня есть богатое текстовое поле в моей форме Windows, и я пытаюсь получить к нему доступ за пределы щелчков кнопок. Я понял, что элемент управления не является «общедоступным», и я не могу просто назвать его в коде, где бы я ни захотел его изменить.Доступ к элементам управления на форме Windows C#

Ошибка, которую я получаю: Ссылка на объект требуется для нестатического поля, метода или свойства. Я знаю, что это действительно новичок вопрос, но я пробовал много способов решить эту проблему, и я не могу понять это. Кто-то может помочь?

Код

public static void SeeIfFinished() 
{ 
    if (FinishedThreadCount == 1) 
    { 
     richTextBox1.Text = "text"; 
    } 
} 
+0

Установить свойство richtextbox 'modifier' на' public' из свойств windows – ebattulga

+1

Как насчет того, чтобы не иметь статический метод? –

+0

Где находится этот метод? в основной форме? –

ответ

5

Ваш метод является статическим - удалить модификатор static, и называют его со ссылкой на конкретный экземпляр формы:

myForm.SeeIfFinished(); 

или если ваш код вызова является внутри класса формы, только:

SeeIfFinished(); 
1

Вы не можете получить доступ к инстанцированному объекту внутри sta tic.

Поместите код в метод, не отмеченный ключевым словом static.

1

Статический метод может видеть только статические члены его класса и все, что передается в качестве параметра. richTextBox1 не является статическим членом вашего класса окон, поэтому его нельзя ссылаться внутри статического метода.

Добавить параметр в свой статический метод (RichTextBox richTextBox). Когда вы вызываете метод статического окна, переходите в richTextBox1, и он должен работать.

Смежные вопросы