我要在vsflexgrid8中编辑时可以输入数字、字母等。其中对第3列限定所输入的数据只能是规定的一组数据,如“W”、“SW”“ENE”。
 
     我想把限定的数据暂时保存到一个数组中,如下:
    Dim dataList As Variant
    dataList=Array("C","W","SW","ENE")
    然后在编辑第三列后和这个数组比较。符合时,通过,继续编辑下一个;不符合时,该单元格仍获得焦点,并处于选中其数据的状态(就是数据被选中高亮显示)。    请问这段代码怎么写?

解决方案 »

  1.   

    在BeforeRowColChange事件里,判断输入的东东符合不符合条件,
    不符合,则Cancel=True,禁止移走
    然后Vsflexgrid.EditCell,进入编辑状态
    Vsflexgrid.EditSelStart = 0
     Vsflexgrid.EditSelLength = Len(Vsflexgrid.EditText)
      

  2.   

    干嘛不把这组数据放在VSFlexGrid的下拉框里呢,只许选择就可以了嘛
      

  3.   


        我的数据是从.mdb中读取后由代码自动写入到 vsflexgrid 控件指定列的,如第 3 列,然后由用户来浏览,对空缺或错误的由键盘来编辑修改,共有 30 行,要在每行的第 3 列加  下拉框,太罗嗦了吧!    另外,第 3  列所允许输入的数据共有 20 个之多,都在下拉框选,也很麻烦,所以我想等输入结束后验证一下,这样代码可能简约些!
      

  4.   

    VSFLEXGRID有它自己的一个属性,可以一次性设置,不需要每行都加载如果数据多的话,就另外打开一个选择窗口,这样比验证处理起来方便