MSHFLEXGRID好象只能按行、列或一个矩形区域选中栅格,如何实现可以同时选中任意不相邻的栅格,如同时选中(1,1)、(3,3)、(5,5),就象windows按住CTRL键逐个选择文件那样,谢谢!

解决方案 »

  1.   

    如果MSHFLEXGRID就是不具备此项功能,还有其它什么控件可以?谢谢!
      

  2.   

    不对吧?MSHFLEXGRID没有MultiExtended属性啊!谢谢!
      

  3.   

    我也要用MSHFLEXGRID,关注中……
      

  4.   

    自己用代码来做。在 MouseDown 事件中检测是否 CTRL + Click,在 RowColChange 事件中确定所点击的栅格。在一个数组中记录栅格的选中状态 True/False。根据状态设置 Cell 背景色。
      

  5.   

    你可以自己画背景色,不过刷新和判断起来可能不太好办,要遍历表格啊------------------------------------------------------------------------
    CellBackColor 和 CellForeColor 属性
          CellBackColor — 返回或者设置单独的单元格或者单元格区域的背景色。
    CellForeColor — 返回或者设置单独的单元格或者单元格区域的前景色。 
    这些属性不能在设计时使用。语法object.CellBackColor [=color]
    object.CellForeColor [=color]CellBackColor 和 CellForeColor 属性的语法包括以下几个部分:部分 描述 
    object 对象表达式,其值是“应用于”列表中的对象。 
    color 整数(枚举)。数值表达式,它为当前选定单元指定了颜色。将这些属性中的任何一个设置为 0,都将用标准背景和前景颜色来画单元。 
    说明对这个属性进行修改会影响当前单元或者当前选定,这取决于 FillStyle 属性的设置值。将这些属性中的任何一个设置为 0,MSHFlexGrid 都将用标准背景和前景颜色来画单元。如果想把这些属性中的任何一个设置为黑色,可以将它们设置为 1,而不是 0。可以用 BackColorBkg、BackColorFixed、BackColorSel、ForeColorFixed 以及 ForeColorSel 属性对各种不同的 MSHFlexGrid 元素的颜色进行设置。可以用 BackColor 属性将所有未确定单元设置为同样的背景颜色。