以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  数据类型  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=135491)

--  作者:13775189031
--  发布时间:2019/5/28 8:21:00
--  数据类型
有一些数据空白时不想让单元格为空,想输入“/”,但数据类型设为了双精度小数好像就无法输入数字以外的字符,怎么办?
--  作者:有点甜
--  发布时间:2019/5/28 8:51:00
--  

afterOpenProject事件

 

Tables("表a").grid.Cols("第三列").editor = new windows.Forms.textbox

 

ValidateEdit事件,写处理代码,如

 

msgbox(e.text)


--  作者:13775189031
--  发布时间:2019/5/28 9:02:00
--  

ValidateEdit事件,写处理代码,如

 

msgbox(e.text)


这里不明白?


--  作者:13775189031
--  发布时间:2019/5/28 10:00:00
--  
ValidateEdit事件,处理代码要怎么写?
--  作者:有点甜
--  发布时间:2019/5/28 10:19:00
--  
以下是引用13775189031在2019/5/28 10:00:00的发言:
ValidateEdit事件,处理代码要怎么写?

 

比如

 

If e.col.name = "第三列" Then

   If e.text = "/" Then

        e.row("第十列") = "/"

   End If

End If

 

然后,drawcell事件,根据第十列的值,给第三列赋值为 e.text = "/"


--  作者:13775189031
--  发布时间:2019/5/28 11:00:00
--  
ValidateEdit
If e.Col.name = "工艺要求_类别1_入炉温度_min" Then
    If e.Text > "" Then \'如果已经输入内容
        Dim v As Double = Val(e.Text)
        If e.text = "/" Then
            e.text = "/"
        End If
    End If
End If

Drawcell
If e.Col.name = "工艺要求_类别1_入炉温度_min" Then
    If e.Row.IsNull(e.Col.Name) = False \'如果已经输入内容
        Return
        If e.text = "/" Then
            e.text = "/"
        End If
    End If
End If
输入数值是没问题,输入“/”后,单元格不显示,要怎么改?


--  作者:有点甜
--  发布时间:2019/5/28 12:07:00
--  

把值存放在【第十列】

 

If e.col.name = "第三列" Then

   If e.text = "/" Then

        e.row("第十列") = "/"

   End If

End If

 


--  作者:13775189031
--  发布时间:2019/5/28 13:06:00
--  
ValidateEdit
If e.Col.name = "工艺要求_类别1_入炉温度_min" Then
   If e.text = "/" Then
        e.Row("第一列") = "/"
   End If
End If

Drawcell
Dim dr As Row = e.Row
Select Case e.Col.Name
    Case "工艺要求_类别1_入炉温度_min"
        If dr("第一列") = "/" Then
            e.text = "/"
        Else
            If dr("工艺要求_类别1_入炉温度_min") Then
                e.text = Nothing
            End If
        End If
End Select

输入“/”没问题了,但输入数值会显示:

.NET Framework 版本:2.0.50727.8941
Foxtable 版本:2019.4.12.1
错误所在事件:表,热处理清单,DataColChanged
详细错误信息:
调用的目标发生了异常。
从字符串“/”到类型“Double”的转换无效。
输入字符串的格式不正确。

--  作者:13775189031
--  发布时间:2019/5/28 13:14:00
--  
输入数值后,还是会显示“/”
--  作者:有点甜
--  发布时间:2019/5/28 15:51:00
--  

错误在你的datacolchanged事件【错误所在事件:表,热处理清单,DataColChanged

 

或者你改成ValidateEdit

 

If e.Col.name = "工艺要求_类别1_入炉温度_min" Then
    e.Row("第一列") = e.text
    e.text = val(e.text)
End If
[此贴子已经被作者于2019/5/28 15:51:07编辑过]