C# 在c中通过子窗体编辑主窗体中的计时器#

C# 在c中通过子窗体编辑主窗体中的计时器#,c#,forms,timer,C#,Forms,Timer,我在主窗体中有一个计时器,但是我想通过第二个子窗体更改计时器的间隔。但是,在子窗体中有一个“System.NullReferenceException”,在获取文本框文本时,代码在下面可见。任何建议、示例、提示或帮助都将不胜感激 带定时器的主窗体(通过设计器添加) 定时器控制的其他子窗体: public partial class TimerControl : Form { public static Timer BooyaaTimer { get; internal set; }

我在主窗体中有一个计时器,但是我想通过第二个子窗体更改计时器的间隔。但是,在子窗体中有一个“System.NullReferenceException”,在获取文本框文本时,代码在下面可见。任何建议、示例、提示或帮助都将不胜感激

带定时器的主窗体(通过设计器添加)

定时器控制的其他子窗体:

public partial class TimerControl : Form
{
    public static Timer BooyaaTimer { get; internal set; }           

    public TimerControl()
    {
        InitializeComponent();               
    }

    private void btn_confirm_Click(object sender, EventArgs e)
    {
        BooyaaTimer.Interval = Int32.Parse(textBox1.Text);    
    }
}

正如@gusman所指出的,检查主窗体
Booyaa
以确保
BooyaaTimer
存在(即它不为空)。如果没有将计时器控件拖放到窗体上,请确保在窗体的构造函数中调用
BooyaaTimer=new timer()

因此,如果在这里之前一切正常,那么您不会将计时器传递给子窗体。如果
GetPass
实际上是
TimerControl
(我怀疑),那么您需要修改
Booyaa\u Load
调用,如下所示:

MessageBox.Show("Time");
GetPass pass = new GetPass();
/*****-----------******/
pass.BooyaaTimer = BooyaaTimer;//set sub-form's property

DialogResult result = pass.ShowDialog();
此外,在子表单中,在使用将从其他位置设置的对象之前检查空值并没有什么坏处

if(BooyaaTimer!=null)
  BooyaaTimer.Interval = Int32.Parse(textBox1.Text); 

下一步,尝试使用int.TryParse。

BooyaaTimer始终为空,您没有初始化它。在发布有关异常的问题时,您应该说您遇到了什么异常。@Gusman我如何修复它?@RufusL抱歉,我的错,我已经编辑了它。这是一个“System.NullReferenceException”
if(BooyaaTimer!=null)
  BooyaaTimer.Interval = Int32.Parse(textBox1.Text);