Foxtable(狐表)用户栏目专家坐堂 → 关闭窗口时提示未将对象引用设置到对象的实例


  共有2914人关注过本帖树形打印复制链接

主题:关闭窗口时提示未将对象引用设置到对象的实例

帅哥哟,离线,有人找我吗?
天若千颖
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
关闭窗口时提示未将对象引用设置到对象的实例  发帖心情 Post By:2016/6/17 20:59:00 [只看该作者]

在开发模式中没有出现错误提示,但是我生成安装包,安装之后,在绘图的界面,点击一些单选框之后,关闭窗口机会提示,有时又不提示错误,不知道哪里有问题,特来请教。

 

.NET Framework 版本:2.0.50727.5420
Foxtable 版本:2016.6.16.1
错误所在事件:窗口,项目投资情况窗口,RadioButton1,Click
详细错误信息:
未将对象引用设置到对象的实例。

 

'----------------------绘图--------------------------
Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Chart= e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar '设置图表类型
Chart.DataSource = "区块投资明细" '设置绑定表
Chart.SeriesList.Clear() '清除图表原来的图系
Series = Chart.SeriesList.Add() '增加一个图系
Series.X.DataField = "ATP" 'X轴绑定到列
Series.Y.DataField = "总投资" 'Y轴绑定到列

'----------------------图表美化--------------------------
Chart.VisualEffect = False '加上这一行,让图表更漂亮
Chart.LegendCompass= CompassEnum.South '图列显示在底端
Series.DataLabelText = "{#YVAL}"
Series.DataLabelCompass =LabelCompassEnum.North
Chart.LegendVisible = False '显示图列

 

 

代码参考的是:http://www.foxtable.com/help/index.html?n=1485.htm 

方法二

将图表绑定到数据表。
将按钮的Click事件代码设置为:


 Dim Chart As WinForm.Chart '定义一个图表变量
Dim
 Series As WinForm.ChartSeries '定义一个图系变量
Chart= e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.DataSource = 
"统计表1" '设置绑定表
Chart.SeriesList.Clear() 
'清除图表原来的图系
Series = Chart.SeriesList.Add() 
'增加一个图系
Series.X.DataField = 
"月份" 'X轴绑定到月份列
Series.Y.DataField = 
"数量" 'Y轴绑定到数量列

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:未将对象引用设置到对象的实例.rar

[此贴子已经被作者于2016/6/17 21:18:51编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
天若千颖
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/6/17 21:03:00 [只看该作者]

所有的提示好像都是指向

错误所在事件:窗口,各区块井数及产量显示窗口,RadioButton1,Click


我在窗口的AfterLoad中也使用了相同的代码,为了使窗口打开的时候就显示图片,而不至于CHART那里空着。

[此贴子已经被作者于2016/6/17 21:55:25编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/6/18 8:33:00 [只看该作者]

1.升级到最新版本

2.请上传完整实例测试。

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/6/18 8:36:00 [只看该作者]

你可以用这个方法调试一下:

 

http://www.foxtable.com/help/topics/1485.htm

 

看看那一行代码出错。


 回到顶部
帅哥哟,离线,有人找我吗?
天若千颖
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/6/18 9:06:00 [只看该作者]

狐爸,我在原程序下预览没有发现任何问题,但是生成应用安装之后,关闭窗口的时候有时会出现错误提示。

我像这样测试代码,全部都能显示啊,没有问题。

这段代码我是卸载窗口的Afterload和单选框的Click事件中的。关闭窗口的时候会有错误提示,窗口没有关闭点击控件的时候正常。

'----------------------绘图--------------------------
Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
MessageBox.Show(1)
Chart= e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.ChartType = ChartTypeEnum.Bar '设置图表类型 
MessageBox.Show(2)
Chart.DataSource = "区块投资明细" '设置绑定表
Chart.SeriesList.Clear() '清除图表原来的图系
MessageBox.Show(3)
Series = Chart.SeriesList.Add() '增加一个图系
Series.X.DataField = "ATP" 'X轴绑定到列
MessageBox.Show(4)
Series.Y.DataField = "总投资" 'Y轴绑定到列
MessageBox.Show(5)

'----------------------图表美化--------------------------
Chart.VisualEffect = False '加上这一行,让图表更漂亮
Chart.LegendCompass= CompassEnum.South '图列显示在底端
Series.DataLabelText = "{#YVAL}"
Series.DataLabelCompass =LabelCompassEnum.North
Chart.LegendVisible = False '显示图列

 回到顶部
帅哥哟,离线,有人找我吗?
天若千颖
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/6/18 9:08:00 [只看该作者]

我把调试代码放入AfterClose中,关闭窗口的时候也能正常显示。

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/6/18 9:11:00 [只看该作者]

你逐行加上messagebox. 然后发布测试

 回到顶部
帅哥哟,离线,有人找我吗?
天若千颖
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/6/18 9:23:00 [只看该作者]

我逐行加了,代码如下,我是在单选按钮的Click事件中加的这个代码,关闭的时候有弹出 1/2/3这样的数字,难道窗口在关闭的时候还会执行一遍?

显示1之后就弹出错误提示了,应该是这里错了,是不是窗口已经关闭了,所以这个时候找不到CHART1的控件了?


Chart= e.Form.Controls("Chart1") ' 引用窗口中的图表

那这个代码应该怎么改啊。



'----------------------绘图--------------------------
Dim Chart As WinForm.Chart '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
MessageBox.Show(1)
Chart= e.Form.Controls("Chart1") ' 引用窗口中的图表
MessageBox.Show(2)
Chart.ChartType = ChartTypeEnum.Bar '设置图表类型 
MessageBox.Show(3)
Chart.DataSource = "区块投资明细" '设置绑定表
MessageBox.Show(4)
Chart.SeriesList.Clear() '清除图表原来的图系
MessageBox.Show(5)
Series = Chart.SeriesList.Add() '增加一个图系
MessageBox.Show(6)
Series.X.DataField = "ATP" 'X轴绑定到列
MessageBox.Show(7)
Series.Y.DataField = "总投资" 'Y轴绑定到列
MessageBox.Show(8)

'----------------------图表美化--------------------------
Chart.VisualEffect = False '加上这一行,让图表更漂亮
Chart.LegendCompass= CompassEnum.South '图列显示在底端
Series.DataLabelText = "{#YVAL}"
Series.DataLabelCompass =LabelCompassEnum.North
Chart.LegendVisible = False '显示图列


 回到顶部
帅哥哟,离线,有人找我吗?
天若千颖
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:682 积分:4871 威望:0 精华:0 注册:2014/6/15 16:01:00
  发帖心情 Post By:2016/6/18 9:30:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20160618092650.png
图片点击可在新窗口打开查看

 

找到问题原因了,我在一个窗口里面放了两个GroupBox,GroupBox里面是单选控件,当我点击完第一个GBox里面的单选控件之后,再去点击第二个Gbox里面的单选,这个时候,第一个Gbox里面的单选还有一个是处于选中的状态的。这个时候关闭窗口的时候就会提示第一个Gbox里面的单选空间出错,找不到Chart1控件。

 

两个GroupBox里面的不同单选按钮,如何避免在一个窗口中同时存在两个选中项呢?


 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/6/18 9:35:00 [只看该作者]

我导入窗口测试没有问题,同时几个选中项都没有问题。建议联系客服核对一下激活码

如果不想同时存在几个选中项,都放到一个容器里就可以

 回到顶部
总数 15 1 2 下一页