C1FlexGrid中单元格输入中文括号能否自动变为英文括号?
我用的是winform版控件
C1FlexGrid中单元格输入中文括号能否自动变为英文括号?
有没有相关的事件,在我输入中文括号的时候,输入过程中,自动切换为英文括号?
输入过程中很麻烦,这个编辑器不好获取和控制,建议你在AfterEdit 事件里来直接修改单元格值
c1FlexGrid4.AfterEdit += (s, e) => {
var value = c1FlexGrid4;
if(value is string)
{
c1FlexGrid4 = (value as string).Replace("(", "(").Replace(")", ")");
}
};
本帖最后由 一路向东 于 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
是的,主要是要在editor中处理的话,你可能还需要考虑是否设置了其他的自定义编辑器(比如combobox等等),TextBox只是默认的编辑器类型
页:
[1]