我写了一个简单的类
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
|
|