Member 14130699 Ответов: 1

Ошибка в C#, передача текста из program.cs в форму 1


Итак, в program.cs я написал следующий код:
Form1.textBox1.Text = RSAObj.ToXmlString(true);


Проблема в том, что я получаю следующие ошибки: 'Form1.Form1.textBox1' недоступен из-за его уровня защиты

и

Ссылка на объект, необходимый для нестатические поля, метод или свойство 'формы form1.Форма form1.текстовое поле textbox1'

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

Что я уже пробовал:

Исследования, я не знаю, как решить эту проблему человек

1 Ответов

Рейтинг:
2

phil.o

Вы должны использовать пример от Form1 чтобы получить доступ к его textBox1 контроль.
То, как вы это написали, похоже на то, что вы ожидаете, что текстовое поле будет статическим элементом Form1 класс, которым он явно не является.
Один из способов сделать это-сохранить ссылку на экземпляр в момент его создания (скорее всего, в Main метод проведения Program класс):

static void Main(string[] args) {
  // ...
  Form1 form = new Form1();
  form.textBox1.Text = "Whatever...";
  Application.Run(form);
}

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


Member 14130699

Привет, чувак, я все еще получаю те же ошибки. Это мой код.:

static void Main(string[] args) {
Приложение.Выполнить(новая форма 1());
Форма form1 = новые формы form1();
Форма form1.текстовое поле textbox1.Текст = "Что Угодно...";
}

Member 14130699

'Form1.Form1.textBox1' недоступен из-за его уровня защиты

и

Ссылка на объект, необходимый для нестатические поля, метод или свойство 'формы form1.Форма form1.текстовое поле textbox1'

Dave Kreskowiak

У вас есть огромные пробелы в понимании того, как работает объектно-ориентированный код.

Вы-программный код, основной метод создал два экземпляра Form1, один из которых он показал, а другой вы попытались изменить текстовое поле и не показали вообще.

Ваш код должен создать один экземпляр Form1, изменить его, а затем показать.

static void Main(string[] args)
{
    // Create an instance of Form1.
    Form1 form = new Form1();

    // Modify the textbox value on it.
    form.SetTextBox1Value("Whatever...");

    // Show the application form.
    Application.Run(form);
}


Чтобы сделать эту работу, вы должны предоставить метод в вашем коде Form1 для установки значения текстового поля.
    public void SetTextBox1Value(string text)
    {
        TextBox1.Text = text;
    }

phil.o

Мой виртуальный 5 :)