在pb的一个response窗口中调用父窗口的树控件,提示Null object reference错误

xiao_bai 2013-07-22 02:53:40
好久没碰PB了,遇到一个小问题,向大家求教:
需求:
main窗体 w_main 中有一个treeview控件 tv_1,一个button按钮cb_1。点击cb_1打开一个response类型的窗体 w_insert ,在其中输入类别代码和类别名称,点击cb_save保存按钮后,把新增的层级加到w_main的tv_1中并显示。
报错:
我在w_insert 的cb_save保存按钮中执行到如下语句时就提示 null object reference 错误了。
long ll_handle
.....
ll_handle = w_main.tv_1.finditem(currenttreeitem!,0)
.....
很明显这里w_main未能在w_insert窗体中实例化,求大家解决这个问题的代码,谢谢。

注:在w_main窗体的cb_1按钮中我有如下语句:
openwithparm(w_insert,0) //0表示新增,1表示修改
...全文
2805 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiao_bai 2013-07-26
  • 打赏
  • 举报
回复
这个问题用版主老大的方法解决了。但是感觉还应该有更好的办法才对,先结贴吧。
pb8 2013-07-23
  • 打赏
  • 举报
回复
引用 2 楼 xiao_bai 的回复:
[quote=引用 1 楼 lzp_lrp 的回复:] openwithparm(w_insert,0) 改为把窗口传进去 openwithparm(w_insert, parent) w_main iw_parent iw_parent = message.powerobjectparm //新增或者修改的话,可以定义一个实例变量
1.感谢lzp_lrp,但这个地方我本来是传参数0的,用来区分是新增项还是修改项,最好功能予以保留。 2.我找了一下以前我做的项目,是pb7开发的。结果同样的问题竟然没有问题!也就是说,同样的代码: ll_handle = w_main.tv_1.finditem(currenttreeitem!,0) 在pb7的项目中可以操作,而且 w_main 和 w_insert 都是response类型的,这是什么原因呢? 我个人怀疑是用的框架不同吧,欢迎大家讨论[/quote] 核心的问题在于你的打开方式,你试一下在w_insert窗体中判断一下isvalid(w_main),再去理解一下就知道了
xiao_bai 2013-07-23
  • 打赏
  • 举报
回复
引用 1 楼 lzp_lrp 的回复:
openwithparm(w_insert,0) 改为把窗口传进去 openwithparm(w_insert, parent) w_main iw_parent iw_parent = message.powerobjectparm //新增或者修改的话,可以定义一个实例变量
1.感谢lzp_lrp,但这个地方我本来是传参数0的,用来区分是新增项还是修改项,最好功能予以保留。 2.我找了一下以前我做的项目,是pb7开发的。结果同样的问题竟然没有问题!也就是说,同样的代码: ll_handle = w_main.tv_1.finditem(currenttreeitem!,0) 在pb7的项目中可以操作,而且 w_main 和 w_insert 都是response类型的,这是什么原因呢? 我个人怀疑是用的框架不同吧,欢迎大家讨论
WorldMobile 2013-07-22
  • 打赏
  • 举报
回复
openwithparm(w_insert,0) 改为把窗口传进去 openwithparm(w_insert, parent) w_main iw_parent iw_parent = message.powerobjectparm //新增或者修改的话,可以定义一个实例变量

604

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 控件与界面
社区管理员
  • 控件与界面社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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