huzhongwen 发表于 2023-10-18 10:37:53

C1FlexGrid中单元格输入中文括号能否自动变为英文括号?



我用的是winform版控件

C1FlexGrid中单元格输入中文括号能否自动变为英文括号?




有没有相关的事件,在我输入中文括号的时候,输入过程中,自动切换为英文括号?

Richard.Ma 发表于 2023-10-18 14:03:52

输入过程中很麻烦,这个编辑器不好获取和控制,建议你在AfterEdit 事件里来直接修改单元格值


            c1FlexGrid4.AfterEdit += (s, e) => {
                var value = c1FlexGrid4;
                if(value is string)
                {
                  c1FlexGrid4 = (value as string).Replace("(", "(").Replace(")", ")");
                }
            };

一路向东 发表于 2023-10-20 13:54:12

本帖最后由 一路向东 于 2023-10-20 14:03 编辑

如果一定要在输入时替换,那就在初始化的时候,把列的Editor(其实就是一个TextBox)的KeyDown或者KeyPress事件绑定到处理方法,除此之外你还需要处理粘贴时的数据。所以版主的AfterEdit事件处理是最简单的,代码如下:
Dim grid = New THT5FlexGrid

AddHandler grid.Cols(1).Editor.KeyPress, Sub(send, e)
                                             Select Case e.KeyChar
                                                 Case "("
                                                   e.KeyChar = "("
                                                 Case ")"
                                                   e.KeyChar = ")"
                                             End Select
                                       End Sub

Richard.Ma 发表于 2023-10-20 14:08:47

是的,主要是要在editor中处理的话,你可能还需要考虑是否设置了其他的自定义编辑器(比如combobox等等),TextBox只是默认的编辑器类型

页: [1]
查看完整版本: C1FlexGrid中单元格输入中文括号能否自动变为英文括号?