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

QQ登录

只需一步,快速开始

chenfeng1029
金牌服务用户   /  发表于:2017-5-10 11:33  /   查看:3537  /  回复:9
我写了一个简单的类
Imports C1.Win.C1Tile
Public Class TilesLib

    Public Overloads Shared Function TextElementTemplate() As TextElement
        Dim vTextElement As New TextElement
        vTextElement.AlignmentOfContents = System.Drawing.ContentAlignment.MiddleCenter
        vTextElement.BackColor = System.Drawing.Color.FromArgb(CType(CType(111, Byte), Integer), CType(CType(51, Byte), Integer), CType(CType(129, Byte), Integer))
        vTextElement.Font = New System.Drawing.Font("幼圆", 14.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
        vTextElement.ForeColor = System.Drawing.Color.WhiteSmoke
        Return vTextElement
    End Function
    Public Overloads Shared Function ImageElementTemplate(ByVal vImgName As Image) As ImageElement
        Dim vImageElement As New ImageElement
        vImageElement.Alignment = System.Drawing.ContentAlignment.MiddleLeft
        vImageElement.Image = vImgName
        vImageElement.Margin = New System.Windows.Forms.Padding(10, 0, 0, 0)
        Return vImageElement
    End Function
    Public Overloads Shared Function ImageElementTemplate() As ImageElement
        Dim vImageElement As New ImageElement
        vImageElement.Alignment = System.Drawing.ContentAlignment.MiddleLeft
        vImageElement.Margin = New System.Windows.Forms.Padding(10, 0, 0, 0)
        Return vImageElement
    End Function
    Public Overloads Shared Function TileTemplate(ByVal vTextElement As TextElement) As Template
        Dim vTemplate As New Template
        vTemplate.Elements.Add(vTextElement)
        Return vTemplate
    End Function
    Public Overloads Shared Function TileTemplate(ByVal vTextElement As TextElement, ByVal vImgElement As ImageElement) As Template
        Dim vTemplate As New Template
        vTemplate.Elements.Add(vTextElement)
        vTemplate.Elements.Add(vImgElement)
        Return vTemplate
    End Function
End Class

c1tilecontrol进行调用
下面是调用的代码
Public Sub P_AddFirstLevelMenu(ByVal vUserId As String, ByVal vSysid As String)
        Dim dt As New DataTable
        Dim strModuleName As String
        dt = MClsConfig.UserSystemFirstLevelMenu(vUserId, vSysid, Mdb.Connection)
        C1Tileml.BeginUpdate()
        C1Tileml.Groups.Clear(True)
        Dim vTileGroup As New Group
        C1Tileml.Groups.Add(vTileGroup)
        Dim i As Integer
        Dim clsTiles As New TilesLib
        i = 1
        For Each dr As DataRow In dt.Rows
            Dim vTile As New Tile
            strModuleName = dr("m_name").ToString()
‘’//这里一个问题如果我不设置image,其实模板里设置了image好像也不会显示。
            vTile.Image = ImageList1.Images.Item(strModuleName)
            vTile.Text = strModuleName
‘’//字体模板设置也是如此,我设置了字体颜色和背景数也不起作用。不知道是哪里问题。
            vTile.BackColor = Color.FromArgb(111, 51, 129)
            vTile.ForeColor = Color.FromArgb(224, 224, 224)
            vTile.LeftCell = 1
            vTile.TopCell = i
            vTile.HorizontalSize = 2

            vTile.Template = TilesLib.TileTemplate(TilesLib.TextElementTemplate(), TilesLib.ImageElementTemplate())
            vTileGroup.Tiles.Add(vTile)
            i = i + 1
        Next


        C1Tileml.EndUpdate() '//更新
    End Sub


9 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2017-5-10 15:47:29
沙发
不好意思回复晚了。
这个需要调查下,要不你发个可以重现问题的Demo,我这里做下测试。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
chenfeng1029
金牌服务用户   /  发表于:2017-5-10 20:40:35
板凳
我吧demo上传,你看下是不是我哪里设置有问题。

本帖子中包含更多资源

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

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2017-5-11 09:07:48
地板
chenfeng1029 发表于 2017-5-10 20:40
我吧demo上传,你看下是不是我哪里设置有问题。

收到了。
我测试下给你回复。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2017-5-11 17:23:17
5#
chenfeng1029 发表于 2017-5-10 20:40
我吧demo上传,你看下是不是我哪里设置有问题。

我测试了你的Demo,里面是存在您说的问题。
我重新做了了显示图片的Demo,您先看看。
如果有什么问题,提出来我们讨论。

本帖子中包含更多资源

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

x
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
chenfeng1029
金牌服务用户   /  发表于:2017-5-11 23:08:15
6#
好的。谢谢。我测试下
回复 使用道具 举报
JeffryLI
葡萄城公司职员   /  发表于:2017-5-12 09:00:34
7#
Hi.您解决问题了吗?
请点击评分,对我5分评价,谢谢!

葡萄城控件服务团队
官方网站: https://www.grapecity.com.cn/developer
回复 使用道具 举报
chenfeng1029
金牌服务用户   /  发表于:2017-5-12 23:26:38
8#
我改下我之前上的demo,似乎还是不行
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        C1Tileml.BeginUpdate()
        C1Tileml.Groups.Clear(True)
        Dim vTileGroup As New Group
        C1Tileml.Groups.Add(vTileGroup)
        Dim i As Integer
        Dim clsTiles As New TilesLib
        i = 1

        Dim vTile As New Tile
        Dim vImageElement As New ImageElement
        vImageElement.Image = ImageList1.Images.Item("pos下发")
        vImageElement.Alignment = ContentAlignment.MiddleCenter
        vImageElement.Margin = New System.Windows.Forms.Padding(0, 10, 0, 0)
        C1Tileml.DefaultTemplate.Elements.Add(vImageElement)

        '’//这里一个问题如果我不设置image,其实模板里设置了image好像也不会显示。
        '// vTile.Image = ImageList1.Images.Item("pos下发")
        vTile.Text = "12"
        '’//字体模板设置也是如此,我设置了字体颜色和背景数也不起作用。不知道是哪里问题。
        vTile.BackColor = Color.FromArgb(111, 51, 129)
        vTile.ForeColor = Color.FromArgb(224, 224, 224)
        vTile.LeftCell = 1
        vTile.TopCell = i
        vTile.HorizontalSize = 2
        vTile.Template = C1Tileml.DefaultTemplate
        '   vTile.Template = TilesLib.TileModTemplate(TilesLib.TextElementSmallTemplate(), TilesLib.ImageElementSmallTemplate(ImageList1.Images.Item("pos下发")))
        vTileGroup.Tiles.Add(vTile)



        C1Tileml.EndUpdate() '//更新
    End Sub
我吧图片放在imagelist里,读取读片信息赋值c1tile中图片模板,后续瓷片加载模板,并没有显示我之前已经绑定的图片。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2017-5-15 10:03:12
9#
chenfeng1029 发表于 2017-5-12 23:26
我改下我之前上的demo,似乎还是不行
    Private Sub Button2_Click(sender As Object, e As EventArgs) H ...

好的,收到了。
我再测试下
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2017-5-16 17:13:49
10#
chenfeng1029 发表于 2017-5-10 20:40
我吧demo上传,你看下是不是我哪里设置有问题。

针对你的demo又做了调查。
为了展示图片,你应该设置ImageElement的ImageSelector属性非绑定,这个是在TileModTemplate 方法中,如下所示:
  1. Public Overloads Shared Function TileModTemplate(ByVal vTextElement As TextElement, ByVal vImgElement As ImageElement) As Template
  2.         Dim vTemplate As New Template
  3.         vImgElement.ImageSelector = ImageSelector.Unbound
  4.         vTemplate.Elements.Add(vTextElement)
  5.         vTemplate.Elements.Add(vImgElement)
  6.         Return vTemplate
  7. End Function
复制代码


你试试如上代码,如果还有问题,我帮你改Demo。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部