以文本方式查看主题 - 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 在绘制单元格的时候执行,主要用于标记数据。 因为DrawCell事件执行非常频繁,所以代码必须简洁,不可以有太耗时的复杂代码,也不能有显示对话框的代码,否则会出现死循环,切记切记。 |
-- 作者:有点蓝 -- 发布时间:2024/7/7 20:30:00 -- 比如原图大小为:800 X 600 宽改为24,按比例就是 24 / 800 = 0.03,那么高度也同样缩小0.03不就行了,高度 = 600 * 0.03 = 18
|