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