我正在尝试创建一个可以从“程序”类调用的函数,该函数可以在表单中调用textBoxes的AppendText方法。 最后的目标是使用此函数替代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");
}
我很困惑为什么在代码正常编译且没有引发任何错误的情况下,函数在类内部或外部的行为会有所不同。
答案 0 :(得分:2)
调用Application.Run时,控制进入一个循环,因此,下一行仅在应用程序退出时执行