C1FlexGridClassic图片列如何跟随文本列排序
本帖最后由 pan00001 于 2018-9-26 08:06 编辑C1FlexGridClassic中有几列文本列及一列图片列,点击列头在对文本列进行排序后,发现图片所在的列不会跟随文本列而排序,
请教有什么解决方法?谢谢!
您好,您的图片是怎么绑定的? 我是一个函数中,大致如下思路设计:
adoRs1.CursorLocation = ADODB.CursorLocationEnum.adUseClient
adoRs1.Open(PageSQLStr_Sum, cnn3, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)
With C1FlexGridClassic1
da.Fill(ds, adoRs1, "mflinfo")
.DataSource = ds.Tables("mflinfo")
.set_Cell(C1.Win.C1FlexGrid.Classic.CellPropertySettings.flexcpPictureAlignment, 1, Colimage, .Rows - 1, Colimage, C1.Win.C1FlexGrid.Classic.PictureAlignmentSettings.flexPicAlignStretch)
image2 = New System.Drawing.Bitmap(200, 200) '定义新图尺寸
Grp = System.Drawing.Graphics.FromImage(image2) '定义面板
Grp.DrawImage(image, New System.Drawing.Rectangle(tmpX, tmpY, tmpW, tmpH), New System.Drawing.Rectangle(0, 0, image.Width, image.Height), System.Drawing.GraphicsUnit.Pixel) '画新尺寸图(原图,缩放到新图的指定区域,读取原图的指定区域)
.SetCellImage(i, Colimage, image2) '表格中显示图
End With 您好,您的图片是set上去的,不是绑定的,所以在表格排序的时候 图片列不参与排序,所以您可以图片set根据数据逻辑来计算set的位置,这样每次排序 ,重绘单元格 图片也会重绘。希望能帮到您 本帖最后由 pan00001 于 2018-9-26 13:11 编辑
能再详细一点思路吗?如何计算位置?不想重新Set图片,担心速度比较慢! 您好,在flexgrid下面有一个OwnerDrawCell事件,这里每一个单元格在绘制的时候都会触发的事件,所以您在这个里面判断每行的图片的绘制。修改DrawMode=OwnerDraw,希望能帮到您 1、我是通过记录集复制增加一列“图片文件路径文本字符”列,在点列头排序的时候,清空所有图片,并重新读取“图片文件路径文本字符”列把图片插入到需要插图的每一个单元格。
2、同时始终隐藏“图片文件路径文本字符”列。
因为数据量不大速度要求不高,就算通过了,OK,谢谢支持! 不客气的。
页:
[1]