请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

sie

初级会员

40

主题

96

帖子

314

积分

初级会员

积分
314

活字格认证

sie
初级会员   /  发表于:2014-3-11 17:05  /   查看:6036  /  回复:7
如题,datatable中有一列数据类型为Image,为什么C1TrueDBGrid无法显示,Columns中也找不到?

7 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-3-12 09:50:00
沙发
回复 1楼sie的帖子

请参考附件:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
sie
初级会员   /  发表于:2014-3-12 11:40:00
板凳
回复 2楼iceman的帖子

我的开发环境是vb2010,你看下我这么写是不是错误的。
C#代码
c1TrueDBGrid1.FetchCellStyle += new C1.Win.C1TrueDBGrid.FetchCellStyleEventHandler(c1TrueDBGrid1_FetchCellStyle);
到vb写为AddHandler C1TrueDBGrid1.FetchCellStyle, AddressOf C1TrueDBGrid1_FetchCellStyle。

然后private void c1TrueDBGrid1_FetchCellStyle(object sender, C1.Win.C1TrueDBGrid.FetchCellStyleEventArgs e)
        {
            C1NWindDataSet.EmployeesRow row = c1NWindDataSet.Tables[0].Rows[c1TrueDBGrid1.RowBookmark(e.Row)] as C1NWindDataSet.EmployeesRow;
            //C1NWindDataSet2.CategoriesRow row = c1TrueDBGrid1[e.Row] as C1NWindDataSet2.CategoriesRow;
            e.CellStyle.ForegroundImage = GetImageFromByteArray(row.Photo);
            e.CellStyle.ForeGroundPicturePosition = C1.Win.C1TrueDBGrid.ForeGroundPicturePositionEnum.PictureOnly;
        }

到vb写为Private Sub C1TrueDBGrid1_FetchCellStyle(sender As Object, e As C1.Win.C1TrueDBGrid.FetchCellStyleEventArgs) Handles C1TrueDBGrid1.FetchCellStyle
        Dim dr1 As DataRow

        dr1 = idst_data.Tables("TBGIS_CUSTOMER").Rows(e.Row)

        e.CellStyle.ForegroundImage = GetImageFromByteArray(dr1("Image"))
        e.CellStyle.ForeGroundPicturePosition = C1.Win.C1TrueDBGrid.ForeGroundPicturePositionEnum.PictureOnly
    End Sub。
现在这样写出现的问题是无限循环,是不是我哪里写错了?
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-3-12 17:52:00
地板
回复 3楼sie的帖子

sie你好,能不能把你转换后出现问题的demo发上来我看看?
回复 使用道具 举报
sie
初级会员   /  发表于:2014-3-13 11:16:00
5#

麻烦你看一下。

回复 4楼iceman的帖子

我觉应该就两个地方可能是我写错的。1 :AddHandler C1TrueDBGrid1.FetchCellStyle, AddressOf C1TrueDBGrid1_FetchCellStyle。

2:Private Sub C1TrueDBGrid1_FetchCellStyle(sender As Object, e As C1.Win.C1TrueDBGrid.FetchCellStyleEventArgs)
        Dim row As dt1.EmployeesRow
        row = Dt1.Tables(0).Rows(C1TrueDBGrid1.RowBookmark(e.Row))
        e.CellStyle.ForegroundImage = GetImageFromByteArray(row(&quothoto"))
        e.CellStyle.ForeGroundPicturePosition = C1.Win.C1TrueDBGrid.ForeGroundPicturePositionEnum.PictureOnly
    End Sub
执行标红的那句又会跳到方法。  应该是我 AddHandler C1TrueDBGrid1.FetchCellStyle, AddressOf C1TrueDBGrid1_FetchCellStyle。这里不应该这么写。我应该怎么改?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-3-13 15:46:00
6#
回复 5楼sie的帖子

抱歉,我也没有找出到底错在哪里,不过,你提到的两点应该没错。
回复 使用道具 举报
sie
初级会员   /  发表于:2014-3-17 17:57:00
7#
回复 6楼iceman的帖子

我知道错误原因了,GetImageFromByteArray的参数 Byref picData As Byte()  到导致了无限循环,改成byval即可...
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-3-17 18:00:00
8#
回复 7楼sie的帖子

恩,好的,感谢您反馈问题处理方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部