以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  图片绘制在单元格,保持长宽比  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=192624)

--  作者:9EQ98
--  发布时间:2024/7/7 8:01:00
--  图片绘制在单元格,保持长宽比

Select Case e.Col.Name 

    Case "Ico" 

        Dim 绘制列 As String = e.Col.Name

        If e.Row.IsNull(绘制列) = False Then

            e.StartDraw

            Dim File As String = ProjectPath & "\\Images\\" & e.Row(绘制列)

            File = File.Replace("/", "\\")

            File = File.Replace("\\\\", "\\")

            File = File.Replace("\\\\", "\\")

            If FileSys.FileExists(File) = True Then

                Dim img As Image = GetImage(File)

                e.text = "" \'e.row(e.col.name) & "小时"

                e.Graphics.DrawImage(img, e.x + 1 , e.y + 1 , 16 , 16) \' e.Width - 24

            End If

            e.EndDraw

        End If

End Select


请问:如果保持图片的高度和宽度比,让图片不变形。例:宽度24,高度按比例自动缩放



DrawCell

在绘制单元格的时候执行,主要用于标记数据。
 
e参数属性:

Table: 准备绘制的表
Row: 准备绘制的行
Col: 准备绘制的列
Style: 指定自定义样式的名称,如果用默认的样式绘制单元格,无须设置Style属性。
Text: 字符型,获得或者设置要绘制的文本内容
Chart: 单元格图表
DrawChart:绘制单元格图表,参考:单元格图表 添加图表数据 使用线状图 使用柱状图 使用胜负图 几个示例 图表属性设置 单元格图表交互

因为DrawCell事件执行非常频繁,所以代码必须简洁,不可以有太耗时的复杂代码,也不能有显示对话框的代码,否则会出现死循环,切记切记。


--  作者:有点蓝
--  发布时间:2024/7/7 20:30:00
--  
比如原图大小为:800 X 600

宽改为24,按比例就是 24 / 800 = 0.03,那么高度也同样缩小0.03不就行了,高度 = 600 * 0.03 = 18