【问题标题】:Change timer interval from another form via radio buttons [duplicate]通过单选按钮从另一种形式更改计时器间隔[重复]
【发布时间】:2014-04-06 13:00:05
【问题描述】:

我在 Form1 上有一个公共计时器 1,在 Form2 上有一些单选按钮。如何通过单击 Form2 上的单选按钮来更改 Form1 上 timer1 的定时器间隔?

【问题讨论】:

    标签: c# winforms timer radio-button


    【解决方案1】:

    在 form2 上添加一个公共 int 属性 myInt,其值是通过选择单选按钮设置的,然后在 form1 上执行以下操作:

    using (Form2 f2 = new Form2())
    {
        f2.ShowDialog();
        timer1.Interval = f2.myInt;
    }
    

    *这是凭记忆,所以没有测试,但大体思路是一样的

    或者,您可以通过更改 form2 的构造函数,通过引用将 timer1 传递给 form2

    public Form2()
    {
        ...
    }
    

    public Form2(Timer t1)
    {
        this.myTimer1 = t1;
    }
    

    并在form2上添加属性:

    private Timer myTimer;
    

    然后在form1中你会这样做

    using(Form2 f2 = new Form2(timer1))
    {
        f2.ShowDialog();
    }
    

    然后,您可以在 form2 中进行更改时立即更改 timer1 设置,而在我之前的回答中,更改仅在表单关闭后发生。您想采用哪种方式取决于您的应用程序的需求。

    【讨论】:

    • 他的问题是如何使用单选按钮更改间隔。即使他试图用计时器做其他事情,在 form2 上查询公共属性的一般想法仍然适用。但是,如果您要争辩说如果他通过引用传递计时器,他具有更多功能,那么我会同意您的观点,这实际上是一种更好的方法。但这似乎对他的目的有效。尽管如此,我还是会包含按值传递计时器的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    • 2023-03-06
    • 1970-01-01
    • 2012-09-22
    • 2011-05-30
    • 2021-04-02
    • 1970-01-01
    相关资源
    最近更新 更多