【发布时间】:2013-09-14 15:09:13
【问题描述】:
我正在使用 C# 在 Visual Studio 2010 中构建此应用程序。
基本上有2个文件,form1.cs(即windows窗体)和program.cs(所有逻辑所在)。
//form1.cs
public partial class Form1 : Form
{
//runButton_click function
}
//program.cs
class Program
{
static void Main()
{
while(blah-condition)
{
//some calculation
Console.WriteLine("Progress " + percent + "% completed.");
}
}
}
有一个运行按钮和一个空白文本框。
当用户点击“运行”按钮时,program.cs 将执行一些任务,并使用Console.WriteLine() 将进度不断打印到控制台(命令提示符)上。
问题:如何打印到 form1 上的文本框而不是打印到命令提示符? 我需要不断地打印进度,而无需任何用户操作。
提前致谢!
顺便说一句,它不一定是文本框,它可以是标签或其他可以接受文本的东西。我选择了文本框,因为它对我来说更有意义。
【问题讨论】:
-
虽然您的原始问题似乎已得到解答,但请注意,如果您正在向文本框发送大量更新,因为您可能会淹没您的消息队列,从而导致表单变得非常无响应。表单响应能力还取决于“一些计算”的强度。您可能需要考虑一个将进度报告回表单的后台工作线程。
-
@RickDavin 请注意,这种替代方法需要能够将所有控制台写入更改为其他内容。如果他无法控制该代码(即它是库代码),那可能不是一个选项,或者它可能不实用。
标签: c# redirect user-interface console.writeline