【发布时间】:2013-04-03 21:33:23
【问题描述】:
我正在运行一个控制台应用程序。我在表单中有一个文本框。我需要计算最近五分钟在另一个班级中阅读的消息数,并在文本框中显示该值。当我运行代码时,我可以正确地看到 textbox.text 值。但在 UI 中,我看不到文本框中显示的值。但我可以在运行时手动编辑文本框。
这是我的代码:
在代码隐藏中
for (int i = 1; i <= numberOfMsgs; i++)
{
if (addDateTime.AddMinutes(2).Minute==DateTime.Now.Minute)
{
//FilesProcessedInFiveMinutes();
//Thread thread1 = new Thread(new ThreadStart(FiveMinutesMessage));
//thread1.Start();
WebSphereUI webSphereUi = new WebSphereUI();
webSphereUi.count(fiveMinutesCount);
addDateTime = DateTime.Now;
}
fiveMinutesCount = fiveMinutesCount + 1;
}
在 form.cs 中
public void count(int countValue)
{
Thread.Sleep(2000);
txtLastFiveMins.Focus();
txtLastFiveMins.Text = countValue.ToString();
txtLastFiveMins.Refresh();
txtLastFiveMins.Show();
backgroundWorker1.RunWorkerAsync(2000);
}
【问题讨论】:
-
你有一个控制台窗口和一个表单?为什么?
-
我需要计算过去五分钟内处理的消息总数。由于我需要连接到队列,因此我在控制台中分离了这些操作。最初我有一个控制台窗口。然后我添加了一个表格。这会导致任何问题吗?
-
我真的不明白为什么要同时拥有两者。通常,应用程序是 Windows 窗体应用程序或控制台应用程序,而不是两者。让它们一起工作可能相当困难,而且没有什么意义。如果需要,您可以创建两个表单来显示输出。
-
我现在已经创建了单独的 windows 应用程序并添加了其他类文件并连接到队列。一切都像以前一样正常工作。但是在运行时仍然没有在 UI 文本框中显示值。但是在调试时,我可以看到该值已分配给 textbox.text。为什么它不能在文本框上显示?太令人沮丧了。
-
你确定你的count方法被调用了吗?你只需要 txtLastFiveMins.Text = countValue.ToString();