Foxtable(狐表)用户栏目专家坐堂 → 2020年1月版开始出现 文本框中的KeyPress事件的代码对粘贴的内容不起作用


  共有3382人关注过本帖树形打印复制链接

主题:2020年1月版开始出现 文本框中的KeyPress事件的代码对粘贴的内容不起作用

帅哥哟,离线,有人找我吗?
xiaoqiwei
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:668 积分:8561 威望:0 精华:0 注册:2011/5/5 23:55:00
2020年1月版开始出现 文本框中的KeyPress事件的代码对粘贴的内容不起作用  发帖心情 Post By:2020/7/9 16:57:00 [只看该作者]

2020年1月19日版 和 2020年5月29日版 均出现  文本框中的KeyPress事件的代码 对 粘贴的内容 不起作用,这个影响非常之大,很多 金额输入 都是用文本框控件 的

使用2019年4月版 测试正常

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20200709164931.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2020/7/9 16:59:20编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
xiaoqiwei
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:668 积分:8561 威望:0 精华:0 注册:2011/5/5 23:55:00
  发帖心情 Post By:2020/7/9 17:15:00 [只看该作者]

有没什么办法可临时解决这个问题?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/9 17:20:00 [只看该作者]

已反馈

 回到顶部
帅哥哟,离线,有人找我吗?
xiaoqiwei
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:668 积分:8561 威望:0 精华:0 注册:2011/5/5 23:55:00
  发帖心情 Post By:2020/7/9 18:36:00 [只看该作者]

有没什么办法可临时解决这个问题?例如禁止粘贴 
[此贴子已经被作者于2020/7/9 18:36:30编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110648 积分:563148 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/7/9 20:05:00 [只看该作者]

禁止粘贴到keydown事件cancel掉ctrl+v键即可。

窗口afterload屏蔽掉右键菜单:e.Form.Controls("TextBox1").basecontrol.ShortcutsEnabled = False
[此贴子已经被作者于2020/7/9 20:10:31编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
xiaoqiwei
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:668 积分:8561 威望:0 精华:0 注册:2011/5/5 23:55:00
  发帖心情 Post By:2020/7/10 2:04:00 [只看该作者]

想了另一种临时解决方案:

Validating 事件中:


If e.Sender.Value IsNot Nothing Then

    Dim k As String = e.Sender.Value

    Dim Values() As String = k.split(".")

    If Values.Length > 2 Then

        e.Cancel = True

        MessageBox.Show("警告:【" & e.Sender.name & "】输入有误,请检查!","错误提示",MessageBoxButtons.OK, MessageBoxIcon.Warning)

        Return

    End If

    Dim j As Integer = k.Length

    Select Case j

        Case 1

            If Char.IsDigit(k) = False Then

                e.Cancel = True

                MessageBox.Show("警告:【" & e.Sender.name & "】输入有误,请检查!","错误提示",MessageBoxButtons.OK, MessageBoxIcon.Warning)

            End If

        Case Else

            Dim s As String

            For i As Integer = 0 To j - 1

                s = k.SubString(i,1)

                If Char.IsDigit(s) = False And s <> "." Then

                    e.Cancel = True

                    MessageBox.Show("警告:【" & e.Sender.name & "】输入有误,请检查!","错误提示",MessageBoxButtons.OK, MessageBoxIcon.Warning)

                    Exit For

                End If

            Next

    End Select

End If


 回到顶部