C # - Запись в многострочное текстовое поле - PullRequest
0 голосов
/ 05 января 2011

Я пытаюсь записать статус программы пользователю.Но мой метод сделать это не работает.statusBox - это текстовая форма окна.

   public static void writetoStatus(string text)
        {
            TextBox statusBox = new TextBox(); 
            statusBox.Text = text;
        }

Помогите, пожалуйста!

Ответы [ 3 ]

5 голосов
/ 05 января 2011

Вы не можете получить доступ к переменным экземпляра статическим методом. Я не могу придумать, каким образом statusBox не будет членом экземпляра. Попробуйте сделать ваш метод нестатичным, и все будет в порядке.

0 голосов
/ 05 января 2011

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

Вы можете иметь:

    public static void writetoStatus(TextBox tb, string text)
    {
        tb.Text = text;
    }

    // and then later use it like: 
    writetoStatus(statusBox, text);

Или:

    public static void writetoStatus(Form frm, string text)
    {
        TextBox tb = new TextBox();
        tb.Text = text;
        frm.Controls.Add(tb);
    }

    // and then later use it like: 
    writetoStatus(myForm, text);
0 голосов
/ 05 января 2011

Как упоминалось в предыдущем ответе, ваш метод должен быть статическим, чтобы получить доступ к TextBox в вашей форме.

Также актуален тот факт, что вы вводите новый статус TextBox вместо того, который указан в вашей форме.

Если вы создали форму и поместили в нее TextBox, то у TextBox уже есть имя, и вы можете получить к нему доступ из файла кода кода. По умолчанию, думаю, это будет Textbox1 или какой-то другой номер. Конечно, вы можете изменить это имя в файле конструктора или в графическом интерфейсе редактора форм в Visual Studio.

Итак, допустим, вы изменили имя существующего TextBox на statusBox. Теперь ваш метод должен быть таким:

void WriteToStatus(string status)
{
    statusBox.Text = status;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...