很奇怪的问题,在不一样的机子上软件出现了BUG

年轻的程序员小唐 2019-10-07 05:56:13
先放一段错误报告


有关调用实时(JIT)调试而不是此对话框的详细信息,
请参见此消息的结尾。

************** 异常文本 **************

System.NullReferenceException: 未将对象引用设置到对象的实例。

在 CPS_NoneDisplay.FormRadioInformation.cbB_JmpFreq_SelectedIndexChanged(Object sender, EventArgs e) 位置 e:\Project\MYT-390\13_SW_Resource\CCTX-618\CPS_NoneDisplay\FormRadioInformation.cs:行号 636

在 System.Windows.Forms.Control.OnMarginChanged(EventArgs e)
在 System.Windows.Forms.Control.set_Margin(Padding value)

在 System.Windows.Forms.Control.ScaleControl(SizeF factor, BoundsSpecified specified)

在 System.Windows.Forms.ComboBox.ScaleControl(SizeF factor, BoundsSpecified specified)

在 System.Windows.Forms.Control.ScaleControl(SizeF includedFactor, SizeF excludedFactor, Control requestingControl)

在 System.Windows.Forms.Control.Scale(SizeF includedFactor, SizeF excludedFactor, Control requestingControl)

在 System.Windows.Forms.Control.ScaleChildControls(SizeF includedFactor, SizeF excludedFactor, Control requestingControl)

在 System.Windows.Forms.Control.Scale(SizeF includedFactor, SizeF excludedFactor, Control requestingControl)
在 System.Windows.Forms.ContainerControl.OnChildLayoutResuming(Control child, Boolean performLayout)

在 System.Windows.Forms.Control.OnLayoutResuming(Boolean performLayout)

在 System.Windows.Forms.Control.ResumeLayout(Boolean performLayout)

在 CPS_NoneDisplay.FormRadioInformation.InitializeComponent() 位置 e:\Project\MYT-390\13_SW_Resource\CCTX-618\CPS_NoneDisplay\FormRadioInformation.Designer.cs:行号 214


在 CPS_NoneDisplay.FormRadioInformation..[code=csharp]
ctor(DataRadioInfo data) 位置 e:\Project\MYT-390\13_SW_Resource\CCTX-618\CPS_NoneDisplay\FormRadioInformation.cs:行号 79

在 CPS_NoneDisplay.FormMain.FormMain_Load(Object sender, EventArgs e) 位置 e:\Project\MYT-390\13_SW_Resource\CCTX-618\CPS_NoneDisplay\FormMain.cs:行号 213
在 System.Windows.Forms.Form.OnLoad(EventArgs e)

在 System.Windows.Forms.Form.OnCreateControl()

在 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)


在 System.Windows.Forms.Control.CreateControl()


[/code]
这个问题是这样的,程序在我这边公司里是可以用的,应该是开发软件装的比较全所以运行环境可以,同时我们对应的厂家的电脑也是能用的。
然后厂家把软件发给经销商就有部分人出现了这样子的错误报告,看得出来应该是变量在使用时没有赋值的问题。
但是呢由于本人菜鸡,不知道如何在我这边不报错的情况下去修改错误。因为它提示的错误的位置的代码我并看不出有什么问题,我给大家贴出来

//行号636错误
private void cbB_JmpFreq_SelectedIndexChanged(object sender, EventArgs e)
{
if (Initflg) { return; }

//RadioInfoDat.JmpFreq = cbB_JmpFreq.SelectedIndex; //提示的错误代码我用“//”标记出来。但是编译是没有错的而且是不能缺少的
}


//行号214错误
// FormRadioInformation
//
resources.ApplyResources(this, "$this");
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.lab_progress);
this.Controls.Add(this.progressBar);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.KeyPreview = true;
this.Name = "FormRadioInformation";
this.ShowIcon = false;
this.Load += new System.EventHandler(this.FormRadioInformation_Load);
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.FormRadioInformation_KeyDown);
// this.groupBox1.ResumeLayout(false);//提示的错误代码我用“//”标记出来。
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();


//行号79错误
public FormRadioInformation(DataRadioInfo data)
{
//InitializeComponent();//提示的错误代码我用“//”标记出来。

RadioInfoDat = data;
sP = new MySerialPort();
//加载数据
loadData();
//绑定数据
bingDingTheControls();
}


//错误行号213
else
{
。。。
// FormRadioInformation frm3 = new FormRadioInformation(dataRadioInfo);//
frm3.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;//提示的错误代码我用“//”标记出来。
frm3.TopLevel = false;
。。。
}

由错误报告的提示我觉得可能跟这个FormRadioInformation的重载有关系? 但是代码方面没看到问题,是逻辑的问题吗

我这个开发环境是4.5.1的.net,目标框架是.net2.0,并且我还做了一个.net4的发过去也是报错所以应该是程序的错误
请各位大佬帮帮忙!
...全文
148 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
datafansbj 2019-10-08
  • 打赏
  • 举报
回复
引用 4 楼 weixin_44246797 的回复:
[quote=引用 3 楼 datafansbj 的回复:] cbB_JmpFreq_SelectedIndexChanged 应该是 ComboBox 控件的一个事件,在窗体创建时,由于 ComboBox 会初始化下拉列表而引发,但是此时对象 RadioInfoDat 还未初始化,所以报对象为 null 的错误。 你可以在 cbB_JmpFreq_SelectedIndexChanged 事件中给 RadioInfoDat.JmpFreq 赋值之前打一条日志,看看 RadioInfoDat 是不是 null。
你好,我觉得不是我的代码有问题,或者说在我现在的环境下应该是检测不出null的,因为我编译运行并且把debug文件夹发送给其他机子和厂家都是可以使用的。这是在少数机子上会出现的问题。[/quote] 你可以增加打日志的代码,然后部署到出问题的机器上执行一下,看看日志里是怎么描述的。
  • 打赏
  • 举报
回复
引用 7 楼 正怒月神 的回复:
[quote=引用 5 楼 weixin_44246797 的回复:]
[quote=引用 2 楼 正怒月神 的回复:]
一般来说,这种问题都是数据导致的。
你看看你们厂商和经销商,用的数据一样吗?

请问数据是什么数据呢。界面输入的数据肯定是一样的。而且这个异常是在软件运行的时候马上弹出的。继续之后可以进入界面,但是在继续操作的时候还是会弹出错误[/quote]
数据,就是指客户使用的数据。
报错上cbB_JmpFreq_SelectedIndexChanged,说明应该是下拉选择框的装载出问题了吧
[/quote]
是的,我有去查看报错位置的代码,我也贴出来了,光看并不觉得有什么错,刚刚听1楼的上msdn搜了说是.net的问题,缺少补丁NDP1.1sp1-KB928366-X86.exe和NDP20-KB928365-X86.exe 目前没找到这两个补丁
正怒月神 2019-10-08
  • 打赏
  • 举报
回复
引用 5 楼 weixin_44246797 的回复:
[quote=引用 2 楼 正怒月神 的回复:] 一般来说,这种问题都是数据导致的。 你看看你们厂商和经销商,用的数据一样吗?
请问数据是什么数据呢。界面输入的数据肯定是一样的。而且这个异常是在软件运行的时候马上弹出的。继续之后可以进入界面,但是在继续操作的时候还是会弹出错误[/quote] 数据,就是指客户使用的数据。 报错上cbB_JmpFreq_SelectedIndexChanged,说明应该是下拉选择框的装载出问题了吧
  • 打赏
  • 举报
回复
引用 1 楼 exception92 的回复:
,程序在我这边公司里是可以用的,应该是开发软件装的比较全所以运行环境可以,同时我们对应的厂家的电脑也是能用的。
然后厂家把软件发给经销商就有部分人出现了这样子的错误报告
-》这种问题最不好解决,msdn搜一下”System.Windows.Forms.Form.OnCreateControl()“这个方法什么时候被执行的。


msdn在哪。。。没找到,搜到那个msdn我告诉你,点进去没有东西
  • 打赏
  • 举报
回复
引用 2 楼 正怒月神 的回复:
一般来说,这种问题都是数据导致的。
你看看你们厂商和经销商,用的数据一样吗?

请问数据是什么数据呢。界面输入的数据肯定是一样的。而且这个异常是在软件运行的时候马上弹出的。继续之后可以进入界面,但是在继续操作的时候还是会弹出错误
  • 打赏
  • 举报
回复
引用 3 楼 datafansbj 的回复:
cbB_JmpFreq_SelectedIndexChanged 应该是 ComboBox 控件的一个事件,在窗体创建时,由于 ComboBox 会初始化下拉列表而引发,但是此时对象 RadioInfoDat 还未初始化,所以报对象为 null 的错误。
你可以在 cbB_JmpFreq_SelectedIndexChanged 事件中给 RadioInfoDat.JmpFreq 赋值之前打一条日志,看看 RadioInfoDat 是不是 null。

你好,我觉得不是我的代码有问题,或者说在我现在的环境下应该是检测不出null的,因为我编译运行并且把debug文件夹发送给其他机子和厂家都是可以使用的。这是在少数机子上会出现的问题。
datafansbj 2019-10-08
  • 打赏
  • 举报
回复
cbB_JmpFreq_SelectedIndexChanged 应该是 ComboBox 控件的一个事件,在窗体创建时,由于 ComboBox 会初始化下拉列表而引发,但是此时对象 RadioInfoDat 还未初始化,所以报对象为 null 的错误。 你可以在 cbB_JmpFreq_SelectedIndexChanged 事件中给 RadioInfoDat.JmpFreq 赋值之前打一条日志,看看 RadioInfoDat 是不是 null。
正怒月神 2019-10-08
  • 打赏
  • 举报
回复
一般来说,这种问题都是数据导致的。 你看看你们厂商和经销商,用的数据一样吗?
exception92 2019-10-08
  • 打赏
  • 举报
回复
,程序在我这边公司里是可以用的,应该是开发软件装的比较全所以运行环境可以,同时我们对应的厂家的电脑也是能用的。 然后厂家把软件发给经销商就有部分人出现了这样子的错误报告 -》这种问题最不好解决,msdn搜一下”System.Windows.Forms.Form.OnCreateControl()“这个方法什么时候被执行的。
  • 打赏
  • 举报
回复
引用 9 楼 datafansbj 的回复:
你可以增加打日志的代码,然后部署到出问题的机器上执行一下,看看日志里是怎么描述的。

其实吧,这个打日志的问题。我还不会弄。。。我甚至都不知道要打出什么日志内容
还有就是问题机不在身边在客户那里是客户的,办公设备也有限所以很难还原出问题的环境来
  • 打赏
  • 举报
回复
很诡异的事情发生了,我觉得这个错误应该就是有一个tabpage会不能用就直接继续,然后打算试验其他功能有没有问题,然后呢我使用我程序里的语言切换功能,把程序切换成英语界面。然后!!!!!!!!程序不报错了,报错位置的界面也正常运行,我在把界面切换成中文也不会报错了,但是只要我是在中文界面(default)退出,下次启动还是会报错,在英文界面下(非default)退出,下次启动也没有问题!这太诡异了!!!
明明是一样的代码,分成了中文英文两种界面(default和非defau)就有这么奇怪的不同?????????

110,526

社区成员

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

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

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