关于Timer

monsan 2009-05-15 07:57:32
public partial class Form4 : Form
{
int gap;
Timer newTimer=null; //疑问:是否要设定为null,是否可以定义为Timer newTimer;
public Form4(Timer tm)
{
InitializeComponent();
this.newTimer = tm;
comboBox1.Text = (newTimer.Interval / 60000).ToString();
}

public void button1_Click(object sender, EventArgs e)
{
gap = int.Parse(comboBox1.Text);
newTimer.Interval = (60000 * gap);
this.Close();
}
}
程序运行时大部分时间是正常的,但有一次出现"对象引用设置到对象实例"?,不知是怎么回事?
...全文
135 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
jest850615 2009-06-10
  • 打赏
  • 举报
回复
[Quote=引用楼主 monsan 的帖子:]
public partial class Form4 : Form
{
int gap;
Timer newTimer=null; //疑问:是否要设定为null,是否可以定义为Timer newTimer;
public Form4(Timer tm)
{
InitializeComponent();
this.newTimer = tm;
comboBox1.Text = (newTimer.Interval / 60000).ToString();
}

public void button1_Click(object sender, EventArgs e)
{
gap = int.Parse(comboBox1.Text);
newTimer.Interval = (60000 * gap);
this.Clos…
[/Quote]

疑问处:不能定义为Timer newTimer;编译不会通过的,原因请看msdn。
"对象引用设置到对象实例":如果确定是这块代码抛出的话,那肯定是传进来的Timer实例为null。
因为你这里可能产生空引用的只有Timer。
当然,个人觉得是你代码其他模块抛出的更有可能。
wartim 2009-06-10
  • 打赏
  • 举报
回复
这坟挖的
zgke 2009-06-10
  • 打赏
  • 举报
回复
个人感觉是 public Form4(Timer tm)

在创建实例的时候 传递了个null;
ljb07976513524 2009-05-18
  • 打赏
  • 举报
回复
qqshenyunzcz 2009-05-16
  • 打赏
  • 举报
回复
如果comboBox1.Text=“”装换int肯定会为空啦
光宇广贞 2009-05-16
  • 打赏
  • 举报
回复
gap = int.Parse(comboBox1.Text);


你这行有问题,你怎么保证你每次parse 一定能成功?你需要改为TryParse返回为TRUE
光宇广贞 2009-05-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 pathuang68 的回复:]
Timer newTimer = null;
我觉得没有问题。建议Form4不要弄成partial class看看。大部分时间是对的,偶尔有错误,估计是什么没有同步好的原因。
[/Quote]

partial class 是必须的。因为还有一部分类定义在WINFORM下是在DESIGN.CS文件里面的,C# 的关键字partial允许类可以在不同地方定义。
skyaspnet 2009-05-15
  • 打赏
  • 举报
回复
看看
lbxlnet 2009-05-15
  • 打赏
  • 举报
回复
来学习,,,
wangkuang5 2009-05-15
  • 打赏
  • 举报
回复
comboBox1不是select值会有空值异常么
断点跟踪好了

在就是
gap = int.Parse(comboBox1.Text);
newTimer.Interval = (60000 * gap);
this.Close();
这里都判断不为空时做事,保险
comboBox1和newTimer
tan124 2009-05-15
  • 打赏
  • 举报
回复
你写了timer的事件吗

谢了送timer.Start();


如果上面解决方法不是


下面的是(正确答案)
int gap;

gap = int.Parse(comboBox1.Text);


对不起,我想问你一下你用int定义了他,为何有有用他强转他到comboBox.Text,看的不是太明白,如果是没有对象可能是出在这。

要不告诉我“对象引用设置到对象实例”他指向是哪一块
monsan 2009-05-15
  • 打赏
  • 举报
回复
comboBox1.Text是有几个固定的数值的,如10,20,30
zhaoweiting0609 2009-05-15
  • 打赏
  • 举报
回复
能不能debug跟踪一下?
这样问题比较明了一些
pathuang68 2009-05-15
  • 打赏
  • 举报
回复
Timer newTimer = null;
我觉得没有问题。建议Form4不要弄成partial class看看。大部分时间是对的,偶尔有错误,估计是什么没有同步好的原因。
wuyq11 2009-05-15
  • 打赏
  • 举报
回复
是否是comboBox1.Text值问题
zhushoudong 2009-05-15
  • 打赏
  • 举报
回复
我赞同。可能是空值
peterb 2009-05-15
  • 打赏
  • 举报
回复
可以 Timer newTimer=null; //疑问:是否要设定为null,是否可以定义为Timer newTimer; 默认应该就是null的
xudongdong_1990 2009-05-15
  • 打赏
  • 举报
回复
帮顶了
xudongdong1990 2009-05-15
  • 打赏
  • 举报
回复
最近看到这些程序有点头疼,先顶了
yuanmanguo 2009-05-15
  • 打赏
  • 举报
回复
mark
加载更多回复(1)

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧