MSHFlexGrid 设置MSHFlexGridg.ColAlignment = flexAlignLeftCenter但是,以数字开头的会自动右对齐,以字母和文字开头的左对齐,为什么数字会不统一设置呢?

解决方案 »

  1.   

    这个倒是从没注意过. 
    放到Grid里面的内容都视为文本. 照理说不会有所差别.
    你可以尝试使用FormatString属性来指定所有列的列名称和对齐方式.
      

  2.   

    要每列分别设置的:
    MSHFlexGridg.ColAlignment(0) = flexAlignLeftCenter
    MSHFlexGridg.ColAlignment(1) = flexAlignLeftCenter
      

  3.   

    应该是这样吧:
    MSHFlexGridg.ColAlignment(N) = flexAlignLeftCenterN 是你要设置的列号(从0开始),最左边是“0”列(一般来说,是固定列)。
    这样设置后,整列的对齐方式都是一样的了,除非你重新指定了某单元格的对齐方式。
    还有,这个控件好象并不会分是不是什么“数字”吧,什么内容都是按字符串(文本内容)来看待的。
      

  4.   

    再试了一下:
    MSHFlexGridg.ColAlignment 还真可以不用指定列号。这样相当于是对所有列设置了对齐属性。楼主说的“无效”,是看到的固定列中的效果吧!
    我刚才试了,也是这样的。
    但是,我发现了:对固定列设置对齐,要用:MSHFlexGrid.ColAlignmentFixed = flexAlignLeftCenter
      

  5.   


    都不喜欢用formatstring么?
    formatstring???这个跟Format( )函数没什么关系。
    楼主说的这个,就象Excel表的“单元格”中一样的,那个“对齐方式”。
      

  6.   


    都不喜欢用formatstring么?
    formatstring???这个跟Format( )函数没什么关系。
    楼主说的这个,就象Excel表的“单元格”中一样的,那个“对齐方式”。
    不是啦, 我说的是MSHFlexGrid控件的Formatstring属性.
    举个例子:
    MGrid1.FormatString = "<纸张编号|^纸张名称           |^纸 长|>纸 宽"
    这样就可以一次性设定:列数量, 固定列标题, 每列对齐方式, 每列宽度
    通过每个列标题前面的"<>^"三个符号分别代表左中右对齐. 
    "|"代表列和列分隔, 中间列标题的字符串长度就设定了显示出来的列宽. 
    非常好用的东西.
      

  7.   

    关键是基本上还没应用过这控件。
    以前做个两个小程序,用的只是MSFlexGrid 控件。
    单元格的对齐方式都是用代码设置的。当时还没注意FormatString这个属性,并且MSHFlexGrid控件才有这个属性的。