假设我有两种形式。在Form1中,我有一个计数器(计数++),在Form2中我有一个文本框(textBox1),它显示了计时器的计数。现在我想知道如何在没有任何用户干扰(单击按钮)的情况下在'textBox1'中显示整数'count',换句话说,我将如何使文本框中的数据自动刷新(不使用Form2 form = new Form2(); form.Show();
)。我想要2个独立的窗口,一个运行计时器,另一个文本框显示定时器计数了多少,并不断更新(在定时器的帮助下,我假设)。在表单之间发送数据时不使用.Show()
0
A
回答
3
一种方法是创建一个公共事件并从另一个表单注册该事件。
0
您可以有一个单一/静态类,它包含与所有表单相关的所有数据,并将其公开为属性。所有表单都可以编写和读取这些属性。此外,它还会触发表单在属性更改时可以订阅的事件(以防您需要实时更新)。
1
最简单的方法:在Form2上公开一个属性。在属性的设置器中,设置文本框的值。我相信计时器事件在UI线程上触发,所以你不应该有任何线程安全问题。如果你这样做,你将不得不回到Brian上面提到的公共事件方法。
请记住,您可能还必须执行DoEvents()以使UI实际更新为用户。另外请记住,这种更新本质上会减慢应用程序的处理速度。
public int TimerValue
{
set
{
this.txtTextBox.Text = string.Format("{0:0000}", value);
}
}
0
只要让你的计时器成为一个公共事件,以便它可以在另一个表单上引用。
0
实现定时器形式INotifyPropertyChanged,并且定义表示计数的公共属性:
private int count;
public int Count
{
get { return count; }
set
{
if (count != value)
{
count = value;
OnPropertyChanged("Count");
}
}
}
然后,文本框形式,其绑定到你的文本框的文本价值的计时器形式的Count属性。
textbox.DataBindings.Add("Text", timerForm, "Count");
相关问题
- 1. 单击链接时不发送表单而发送POST数据?
- 2. 在类和表单之间发送数据?
- 3. 在不使用segsen的ViewControllers之间发送数据
- 4. 使用php发送表单数据,但不发送
- 5. 使用Firebug发送表单数据
- 6. 使用PHP从表单发送数据
- 7. 在XUL组件之间发送数据
- 8. 在站点之间发送数据
- 9. 在iPhone和iPad之间发送数据?
- 10. 在活动之间发送数据时发生崩溃
- 11. 如何在使用javascript的php页面之间发送数据
- 12. 使用NSNotificationCenter在VC之间发送数据
- 13. 使用WM_COPYDATA在进程之间发送数据
- 14. 使用自定义变量在活动之间发送数据
- 15. Android使用Parcelable在活动之间发送数据
- 16. 在单独文件中的类之间发送数据
- 17. 表单脚本不发送数据
- 18. 表单不发送完整数据
- 19. 表单不通过POST发送数据
- 20. 不能发送表单数据到php
- 21. SilverStripe表单不发送所有数据?
- 22. 发送表单数据xmlhttprequest
- 23. PHP发送表单数据
- 24. 实际发送数据时使用什么HTML表单动作?
- 25. ViewController与JASidePanels之间发送数据
- 26. 在Visual Studio中发送数据并访问多个表单之间的组件
- 27. 如何使用ajax发送数据而不需要表单?
- 28. PHP发送不使用ajax/jQuery的表单数据
- 29. 发送POST数据到PHP而不使用HTML表单?
- 30. 在不同页面的输入框之间发送数据
单身人士模式被视为反模式很多这些天,所以我不会推荐使用它。 – 2010-05-24 18:41:34
你应该总是使用适合你的东西。 – bitbonk 2010-05-24 18:42:11