以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请问如何代码设定副表字符列各个单元格对齐方式 [已解决]  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=145257)

--  作者:km007
--  发布时间:2020/1/13 23:32:00
--  请问如何代码设定副表字符列各个单元格对齐方式 [已解决]
请问如何代码设定副表字符列各个单元格对齐方式?

例如 表A 第一列(字符型)

我想将第一列的第一行第三行 单元格内容 靠右显示,第二行单元格内容居中显示,第四行单元格内容靠左显示

请问如何用代码去设置呢?


意思是:我想实现的是 同一列数据,不同单元格 不同的靠齐显示方式
[此贴子已经被作者于2020/1/14 14:27:50编辑过]

--  作者:有点蓝
--  发布时间:2020/1/14 8:34:00
--  
这个没有办法,同一列数据只能是一种对齐方式。
--  作者:km007
--  发布时间:2020/1/14 11:29:00
--  
如果有 DrawCell 事件代码可以吗?
--  作者:有点蓝
--  发布时间:2020/1/14 11:36:00
--  
理论上是可以的。就是超长换行处理比较麻烦,并且数据多了绘制就比较卡了
--  作者:km007
--  发布时间:2020/1/14 11:46:00
--  
Select Case e.Col.Name
    Case "金额"
        Select Case e.Row.IsNull(e.Col.Name)
            Case False
                Select Case e.Row("日期")
                    Case "1月"
                        \'该单元格内容靠右显示
                    Case "分类"
                        \'该单元格内容居中显示
                End Select
        End Select
End Select

请问红色字这里的代码应该怎么写呢?

--  作者:有点蓝
--  发布时间:2020/1/14 12:11:00
--  
麻烦:http://foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=106469&skin=0

首先,需要计算文字的宽度,参考上面MeasureString的用法
其次判断单元格的宽度,然后计算绘制的位置,比如靠右:绘制起始左边距 = 单元格的宽度 - 文字的宽度

--  作者:km007
--  发布时间:2020/1/14 14:28:00
--  
图片点击可在新窗口打开查看 问题解决,谢谢