以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何强制转换某列中输入字母内容为大写  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99440)

--  作者:13865161910
--  发布时间:2017/4/19 12:49:00
--  [求助]如何强制转换某列中输入字母内容为大写
RT,单元格中输入字母不用确定是否为大写,自动判定,如果内容有小写字母,强制转换为大写
内容中有数字,小数点,字母,汉字,效果:内容中的小写自动转化为大写字母,再哪里编写代码?怎么编写代码?

--  作者:有点色
--  发布时间:2017/4/19 14:44:00
--  

DataColChanging事件

 

If e.DataCol.name = "第六列"
    e.NewValue = e.NewValue.ToUpper
End If


--  作者:13865161910
--  发布时间:2017/4/19 15:15:00
--  回复:(有点色)DataColChanging事件?If e....
感谢您的解答,刚在帮助中看了下说明,不过遇到一个问题,当输入小写内容 成功转换后,如果对该单元格进行delete或者← 键盘按键的操作,就会弹出如下提示:
.NET Framework 版本:2.0.50727.8670
Foxtable 版本:2017.3.2.1
错误所在事件:表,车型,DataColChanging
详细错误信息:
调用的目标发生了异常。
未设置对象变量或 With 块变量。


我按照下面的增加了判断,不知道是不是问题出在这,好像没提示了

以下内容为程序代码:

1 Dim dr As DataRow = e.DataRow
2 If dr.IsNull("列名") Then
3 If e.DataCol.name = "列名"
4 e.NewValue = e.NewValue.ToUpper
5 End If
6 End If

[此贴子已经被作者于2017/4/19 15:22:48编辑过]

--  作者:有点色
--  发布时间:2017/4/19 15:22:00
--  
If e.DataCol.name = "第六列"
    If e.NewValue IsNot Nothing Then
        e.NewValue = e.NewValue.ToUpper
    End If
End If

--  作者:13865161910
--  发布时间:2017/4/19 15:27:00
--  回复:(有点色)If e.DataCol.name = "第六列"?...
感谢老师帮助,但不知道我自己修改的代码和您给的 是否有什么区别?
一个是判定列不为空,一个是判定新值不为空
[此贴子已经被作者于2017/4/19 15:27:30编辑过]

--  作者:有点色
--  发布时间:2017/4/19 15:41:00
--  
 在DataColChanging事件,尽量用 e.NewValue 来判断。
--  作者:13865161910
--  发布时间:2017/4/21 16:49:00
--  回复:(有点色) 在DataColChanging事件,尽量用...
万分感谢老师的解答!图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看