我有以下代码:
class NotepadCloneNoMenu : Form
{
protected TextBox txtbox;
public NotepadCloneNoMenu(string a)
{
Text = "Notepad Clone No Menu";
txtbox = new TextBox();
txtbox.Parent = this;
txtbox.Dock = DockStyle.Fill;
txtbox.BorderStyle = BorderStyle.None;
txtbox.Multiline = true;
txtbox.ScrollBars = ScrollBars.Both;
txtbox.AcceptsTab = true;
txtbox.AppendText(a);
txtbox.AppendText("\n");
}
}
class program1
{
public static void Main()
{
string result = "abc";
while(true)
{
Application.Run(new NotepadCloneNoMenu(result));
}
}
}
我想继续将字符串结果附加到文本框中,所以看起来像这样:
ABC ABC ABC
等等等等。但是,每次我打电话给你:Application.Run(new NotepadCloneNoMenu(result));
它将重置文本框。无论如何我可以连续更新文本框吗?我对C#很新,所以这对我来说很困惑。
感谢, Phuc Pham
答案 0 :(得分:0)
首先,您不断关闭并打开一个应用程序。这就是它重置的原因。如果你想运行一个无限循环,你可能想在你的应用程序中运行它。
在您的应用程序代码中,使用某个事件(可能是适合您的计时器)将文本附加到textBox。像这样:
public someEventOnTheForm (object sender, EventArgs e)
{
txtBox.Text += "Notepad Clone to Menu";
}
还有两件事需要考虑:首先,如果你没有停止条件,这将继续填充内存,直到你用完为止。
其次,Windows窗体默认只在一个线程上运行。您将使用该线程更新文本框,因此当它附加文本时,表单本身将无法使用。如果它开始花费很长时间,它可能会在活动期间消失。如果您希望表单可用,则需要第二个线程来处理事件。