我正在使用devexpress在Delphi 2006中工作。
我有一个cxGrid。我想限制输入负数列的值
我的问题是如何在添加单元格时测试' - '的位置
是一种简单的方法,只允许在cxgrid的单元格中使用负数。
提前致谢
答案 0 :(得分:1)
做你想做的最简单的方法就是在网格单元格中使用MaskEdit,但正如你在评论中所说的那样你不想使用它,我已经把如何做到了这个答案的结尾。
您可以完全使用自己的代码控制用户对单元格文本的编辑,我将向您展示如何执行此操作。
默认情况下,如果在整数字段的cxGrid列中键入字母键,则会听到哔声。这是因为密钥导致链接到单元格的整数字段protected $teamFormats
返回TField.IsValidChar(InputChar: Char)
。
如果您想在不使用MaskEdit的情况下处理类似“错误”的键,您可以在EditKeyPressed事件中执行此操作。下面的代码显示您可以自己执行用户可以在字段中输入的内容,而无需像下面的评论中所引用的那样模拟按键编辑键。请仔细注意代码中的注释。
False
当然,如果你真的想要实现你在q的标题中所说的内容,即只允许负数,你可以对这段代码做一个微不足道的改变,要求编辑文本以减号开头(和如果编辑文本不为空,则编辑文本+键将转换为整数。
顺便说一句,这段代码回答了你的问题“如何在onpresskey中获取字符串值?”当然。
要在cxGrid单元格中使用MaskEdit,请在Object Inspector中选择cxGrid列,然后
转到OI
从下拉列表中选择“面具编辑”
设置负数的编辑掩码。如果您需要帮助,请参阅在线帮助:基本上,您输入一个减号后跟数字9。
然后,用户只能输入负数而不能编辑前导减号。