苏州三木软件科技有限公司

 找回密码
 立即注册
搜索
热搜: 活动
查看: 240|回复: 6

自定义子窗口 子窗口_FormClosing事件报错

[复制链接]

56

主题

98

帖子

355

积分

中级会员

Rank: 3Rank: 3

积分
355
发表于 3 天前 | 显示全部楼层 |阅读模式
1都没有弹出

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

106

主题

473

帖子

2951

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2951
QQ
发表于 3 天前 | 显示全部楼层


Proj.CurrentClickedGridMenu这个只能在表菜单事件里面用,其他地方使用会有异常的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

56

主题

98

帖子

355

积分

中级会员

Rank: 3Rank: 3

积分
355
 楼主| 发表于 3 天前 | 显示全部楼层
admin 发表于 2025-6-10 16:06
Proj.CurrentClickedGridMenu这个只能在表菜单事件里面用,其他地方使用会有异常的。
...
  1. Public Sub 子窗口_FormClosing(sender As Object,e As  System.Windows.Forms.FormClosingEventArgs)
  2.                         '关闭窗口前设置表格禁止编辑,
  3.                         If Me.SmForm.MainGrid.BaseBaseGrid.AllowEdit=True         Then
  4.                                 MessageBox.Show(1)
  5.                                 Me.SmForm.MainGrid.BaseBaseGrid.AllowEdit= False
  6. '                                CmdRow.UnLock(Proj.CurrentClickedGridMenu.BaseGrid)
  7.                      
  8.                         End If
  9.                         '刷新表格,主要是删除多余的空白行
  10.                         '                        CmdGrid.Load(Proj.CurrentClickedGridMenu.BaseGrid,False)
  11.                         '删除空行
  12.                         If   Me.SmForm.MainGrid.BaseBaseGrid.DataTableHelp IsNot Nothing Then
  13.                                   MessageBox.Show(2)
  14.                                 If Proj.FormTags.Contains("子窗口","删除列名称") Then '在取值之前可以先判断一下需要查询的Key是否存在。
  15.                                         '包含此Key则取值
  16.                                         Dim strReturn As String=Proj.FormTags("子窗口","删除列名称")
  17.                                 Me.SmForm.MainGrid.BaseBaseGrid.DataTableHelp.DeleteFor(strReturn & " is null")
  18.                                 End If
  19.                         End If
  20.                 End Sub
复制代码


改成这样还是报错,1都没弹出来
回复

使用道具 举报

106

主题

473

帖子

2951

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2951
QQ
发表于 3 天前 | 显示全部楼层
报错报的什么错?描述问题要把问题描述清楚了。把报错的详细信息贴出来。

另外,1没有弹出来有可能是条件不符合,所以就没有进入到1这个位置。
回复

使用道具 举报

56

主题

98

帖子

355

积分

中级会员

Rank: 3Rank: 3

积分
355
 楼主| 发表于 3 天前 | 显示全部楼层
报错贴图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

106

主题

473

帖子

2951

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2951
QQ
发表于 3 天前 | 显示全部楼层
这是你这个是自定义窗体,MainGrid这个属性没有赋值(系统自带的窗体模板会主动给这个属性赋值,自定义窗体需要自己将主表先赋值存储好),所以主表可以换一种引用方式

Dim ModelDetailEdit1 As ModelDetailEdit=Me.SmForm.ControlDictionary()("ModelDetailEdit1")
Dim tbl as BaseGrid=  ModelDetailEdit1.GridMenuBase.BaseGrid.BaseBaseGrid
回复

使用道具 举报

56

主题

98

帖子

355

积分

中级会员

Rank: 3Rank: 3

积分
355
 楼主| 发表于 前天 10:05 | 显示全部楼层
我的最终修改是窗口加载的时候(Load事件这)就给MainGrid这个赋值(系统自带的窗体模板会主动给这个属性赋值,自定义窗体需要自己将主表先赋值存储好)               
  1.                 Dim ModelDetailEdit1 As ModelDetailEdit=Me.SmForm.ControlDictionary()("ModelDetailEdit1")
  2.             Me.SmForm.MainGrid =  ModelDetailEdit1.BaseDataRuleGrid
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|苏州三木软件科技有限公司 ( 苏ICP备2022038390号 )

苏公网安备 32058502010732号

GMT+8, 2025-6-13 22:02 , Processed in 0.088318 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表