Я пытаюсь создать функцию, которая может быть вызвана из класса "Program", который мог бы вызвать метод AppendText textBoxes в моей форме.
Цель в конце состоит в том, чтобы использовать эту функцию в качестве замены Console.WriteLine, поэтому мне нужно иметь возможность передать строку этой функции, чтобы она добавляла этот определенный бит текста.
Моим первым инстинктом было создание открытого метода в моем классе Form1, который я затем мог бы вызывать из «Программы». Вот :
В классе Form1:
public void Add(String message)
{
textBox1.AppendText(message + Environment.NewLine);
}
Странная вещь в том, что когда я вызываю этот метод из класса Form1, он работает нормально, но когда я вызываю его из класса Program, ничего не происходит, даже если этот метод является публичным.
Вызов следующего ничего не делает, и моя форма появляется, но текстовое поле пусто.
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Form1 mainForm = new Form1();
Application.Run(mainForm);
mainForm.Add("hello world");
}
, но добавление этой функции в конструктор Form1 работает, и textBox появляется с текстом в
public Form1()
{
InitializeComponent();
this.Add("hello");
}
Я не совсем понимаю, почему функция будет вести себя по-разному внутри класса или снаружи, когда код прекрасно компилируется и не выдает никакой ошибки.