以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  拼音转汉字  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=158696)

--  作者:qazlinle6
--  发布时间:2020/11/29 18:05:00
--  拼音转汉字
拼音可以转成汉字不
--  作者:有点蓝
--  发布时间:2020/11/29 21:19:00
--  
不现实,因为存在大量同音字词:https://www.baidu.com/baidu?word=同音词
[此贴子已经被作者于2020/11/29 21:20:07编辑过]

--  作者:qazlinle6
--  发布时间:2020/11/29 21:50:00
--  
那什么让单元格只能输入汉字
--  作者:有点蓝
--  发布时间:2020/11/29 22:05:00
--  
DataColChanging事件

If e.DataCol.Name = "第一列"  Then
    Dim p2 As String = "[^\\u4e00-\\u9fa5]"
    Dim r As New System.Text.RegularExpressions.Regex(p2)
    If r.IsMatch(e.NewValue) Then
        msgbox("只能输入中文")
        e.Cancel = True
    End If
End If

--  作者:qazlinle6
--  发布时间:2020/11/29 22:21:00
--  
必须得输汉字,要不然清空单元格,不可以输入除汉字以外的字
--  作者:有点蓝
--  发布时间:2020/11/29 22:39:00
--  
4楼代码测试有什么问题?
--  作者:qazlinle6
--  发布时间:2020/11/29 22:48:00
--  
输入其它数字英文只是提醒,然后空值显示
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:表,会员资料,DataColChanged
详细错误信息:
调用的目标发生了异常。
值不能为 null。
参数名: input

--  作者:有点蓝
--  发布时间:2020/11/29 23:00:00
--  
错误所在事件:表,会员资料,DataColChanged,贴出具体代码看看
--  作者:qazlinle6
--  发布时间:2020/11/29 23:07:00
--  
If e.DataCol.Name = "姓名"  Then
    Dim p2 As String = "[^\\u4e00-\\u9fa5]"
    Dim r5 As New System.Text.RegularExpressions.Regex(p2)
    If r5.IsMatch(e.NewValue) Then
        msgbox("只能输入中文")
        e.Cancel = True
    End If
End If

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2020.5.29.8
错误所在事件:表,会员资料,DataColChanging
详细错误信息:
调用的目标发生了异常。
值不能为 null。
参数名: input

--  作者:有点蓝
--  发布时间:2020/11/30 8:41:00
--  
首先4楼有说明是放到DataColChanging事件,不是DataColChanged

其次判断一下是否有值

If e.DataCol.Name = "姓名"  andalso e.datarow.isnull("姓名") = false Then
    Dim p2 As String = "[^\\u4e00-\\u9fa5]"
    Dim r5 As New System.Text.RegularExpressions.Regex(p2)
    If r5.IsMatch(e.NewValue) Then
        msgbox("只能输入中文")
        e.Cancel = True
    End If
End If