以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教JIT调试错误  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=186672)

--  作者:lanbor
--  发布时间:2023/5/18 21:25:00
--  请教JIT调试错误
程序使用了半年以上了,最近几天总是出现
以下JIT调试报错

-------------报错内容如下,请教专家,应该如何检查?
有关调用实时(JIT)调试而不是此对话框的详细信息,
请参见此消息的结尾。

************** 异常文本 **************
System.NullReferenceException: 未将对象引用设置到对象的实例。
   在 #s5.#m7.#06(Char #bU, Point #N6, Boolean #O6)
   在 #s5.#m7.StartEditing(Int32 #j, Int32 #l, Char #bU, Boolean #M6, Point #N6, Boolean #O6)
   在 C1.Win.C1FlexGrid.C1FlexGridBase.StartEditing(Int32 #j, Int32 #l, Char #bU, Boolean #M6, Point #N6, Boolean #O6)
   在 C1.Win.C1FlexGrid.C1FlexGrid.StartEditing(Int32 row, Int32 col, Point ptMouse, Boolean dblClick)
   在 #s5.#Ojb.#tjb(Boolean #O6)
   在 #s5.#Ojb.#ljb(MouseEventArgs #tQ)
   在 C1.Win.C1FlexGrid.C1FlexGridBase.OnDoubleClick(EventArgs e)
   在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   在 System.Windows.Forms.Control.WndProc(Message& m)
   在 C1.Win.C1FlexGrid.Util.BaseControls.ScrollableControl.WndProc(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** 已加载的程序集 **************
mscorlib
    程序集版本:4.0.0.0
    Win32 版本:4.8.4110.0 built by: NET48REL1LAST_B
    基本代码:file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
Foxtable
    程序集版本:2022.8.18.1
    Win32 版本:2022.08.18.01
    基本代码:file:///D:/GX_Quoted-20230310/GX_Quoted/Foxtable.exe
----------------------------------------
Foxtable.Lib
    程序集版本:2022.7.13.1
    Win32 版本:2022.07.13.1
    基本代码:file:///D:/GX_Quoted-20230310/GX_Quoted/Foxtable.Lib.DLL
----------------------------------------
Microsoft.VisualBasic
    程序集版本:10.0.0.0
    Win32 版本:14.8.3761.0 built by: NET48REL1
    基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System.Windows.Forms
    程序集版本:4.0.0.0
    Win32 版本:4.8.4110.0 built by: NET48REL1LAST_B
    基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    程序集版本:4.0.0.0
    Win32 版本:4.8.4110.0 built by: NET48REL1LAST_B
    基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    程序集版本:4.0.0.0
    Win32 版本:4.8.3761.0 built by: NET48REL1
    基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
C1.Win.C1Ribbon.4
[此贴子已经被作者于2023/5/18 22:55:36编辑过]

--  作者:有点蓝
--  发布时间:2023/5/18 21:33:00
--  
表格DoubleClick双击事件写了什么代码?
--  作者:lanbor
--  发布时间:2023/5/18 22:17:00
--  请教JIT调试错误
蓝专家好

针对出错表格:
我使用了:PrepareEdit,CurrentChanged,AfterCheckRow,DoubleClickRowHeader,KeyDown 这几项属性。
其中:DoubleClickRowHeader 中的内容如下 :
If Forms("BOM_custom_create").Opened = True Then
    If Tables("Custom_BOM").Count > 0 Then
        Dim rm As WinForm.Button = Forms("BOM_custom_create").Controls("Read_menu")
        rm.PerformClick()
    End If 
End If

而:Read_menu 按钮中的内容如下:
Dim r00 As Row = Tables("Type_List").Current
Dim r01 As Row = Tables("Custom_BOM").Current
r01("part_name") = r00("part_name")
r01("type_name") = r00("type_name")
r01("type_name2") = r00("type_name2")
r01("type_name3") = r00("type_name3")
r01("type_ID") = r00("type_ID")

而:keyDown 属性中内容如下:
Dim tbl As Table = Tables("Custom_BOMchild")
If e.KeyCode = Keys.Up Then \'如果按下的是上箭头按键
    Syscmd.GridTree.MoveUp()
    e.Cancel = True
ElseIf e.KeyCode = Keys.Down Then \'如果按下的是下箭头按键
    Syscmd.GridTree.MoveDown()
    e.Cancel = True
ElseIf e.KeyCode = Keys.Left Then
    Syscmd.GridTree.MoveLeft()
    e.Cancel = True
    If Tables("Custom_BOMchild").GridTreeVisible Then
        Tables("Custom_BOMchild").Current("pKey0") = Tables("Custom_BOMchild").Current.Hierarchy
    End If 
ElseIf e.KeyCode = Keys.Right Then
    Syscmd.GridTree.MoveRight() 
    e.Cancel = True
     If Tables("Custom_BOMchild").GridTreeVisible Then
         Tables("Custom_BOMchild").Current("pKey0") = Tables("Custom_BOMchild").Current.Hierarchy
    End If
End If
[此贴子已经被作者于2023/5/18 22:34:38编辑过]

--  作者:有点蓝
--  发布时间:2023/5/18 22:37:00
--  
DoubleClickRowHeader 事件去掉,改为放到DoubleClick

If Forms("BOM_custom_create").Opened = True Then
e.cancel=true
    If Tables("Custom_BOM").Count > 0 Then
        Dim rm As WinForm.Button = Forms("BOM_custom_create").Controls("Read_menu")
        rm.PerformClick()
    End If 
End If