2016-08-31 9 views
2

私はDevexpress Xtragrid TileViewモジュールを使用しています。Devexpress Xtragrid TileView

  1. 左上のテキストボックスとプレス荷重でのユーザ入力会員ID:

    基本的に私は私のコードは次のように動作します。

  2. これらが存在する場合、タイルが表示されます。
  3. タイルには、名前、ステータス、メンバーID、写真が含まれている必要があります。
  4. もう一度load(同じIDまたは別のID)を押すと、タイルも追加されます。彼らはクリア&負荷を押している場合を除き、それは1つの最新のタイルを残す必要があります。

したがって、私はステップ3までを作成することができます。 しかし、画像を読み込むことができませんでした。

画像自体、バイト配列ではありません。イメージパスです。 e.q:D:/test/1.jpg

画像をロードするにはどうすればよいですか?

Protected Overridable Sub InitData() 
    Try 
     Dim homesTable = ds.Tables(0) 
     homesTable.Columns.Add("ImageCol") 

     For Each row_Renamed As DataRow In homesTable.Rows 
      Dim img As Image = Image.FromFile(row_Renamed("memberPhoto")) 'I tried this, but didn't work 
      row_Renamed("ImageCol") = img 
     Next row_Renamed 

     GridControl1.DataSource = homesTable 
    Catch 
    End Try 
End Sub 

Private Sub setupTile() 
    'For i = 0 To j - 1 
    Try 
     TileView1.BeginUpdate() 
     'TileView1.DataSource = ds.Tables(0) 
     TileView1.OptionsTiles.RowCount = 3 
     TileView1.OptionsTiles.Padding = New Padding(20) 
     TileView1.OptionsTiles.ItemPadding = New Padding(10) 
     TileView1.OptionsTiles.IndentBetweenItems = 20 
     TileView1.OptionsTiles.ItemSize = New Size(320, 170) 
     TileView1.Appearance.ItemNormal.ForeColor = Color.White 
     TileView1.Appearance.ItemNormal.BorderColor = Color.Transparent 
     'Setup tiles template 
     Dim leftPanel As New TileViewItemElement() 
     Dim splitLine As New TileViewItemElement() 
     Dim nameCaption As New TileViewItemElement() 
     Dim nameValue As New TileViewItemElement() 
     Dim statusCaption As New TileViewItemElement() 
     Dim statusValue As New TileViewItemElement() 
     Dim RGPCaption As New TileViewItemElement() 
     Dim RGPvalue As New TileViewItemElement() 
     Dim imageTile As New TileViewItemElement() 
     TileView1.TileTemplate.Add(leftPanel) 
     TileView1.TileTemplate.Add(splitLine) 
     TileView1.TileTemplate.Add(nameCaption) 
     TileView1.TileTemplate.Add(nameValue) 
     TileView1.TileTemplate.Add(statusCaption) 
     TileView1.TileTemplate.Add(statusValue) 
     TileView1.TileTemplate.Add(RGPCaption) 
     TileView1.TileTemplate.Add(RGPvalue) 
     TileView1.TileTemplate.Add(imageTile) 
     ' 
     'nameValue.Text = "" 
     'statusValue.Text = "" 
     'RGPvalue.Text = "" 
     'imageTile.Image = Nothing 

     ' 
     leftPanel.StretchVertical = True 
     leftPanel.Width = 190 
     leftPanel.TextLocation = New Point(-10, 0) 
     leftPanel.Appearance.Normal.BackColor = Color.FromArgb(58, 166, 101) 
     ' 
     splitLine.StretchVertical = True 
     splitLine.Width = 3 
     splitLine.TextAlignment = TileItemContentAlignment.Manual 
     splitLine.TextLocation = New Point(190, 0) 
     splitLine.Appearance.Normal.BackColor = Color.White 
     ' 
     nameCaption.Text = "Name" 
     nameCaption.TextAlignment = TileItemContentAlignment.TopLeft 
     nameCaption.Appearance.Normal.FontSizeDelta = -1 
     ' 
     nameValue.Column = TileView1.Columns("preferredName") 
     nameValue.AnchorElement = nameCaption 
     nameValue.AnchorIndent = 2 
     nameValue.MaxWidth = 200 
     nameValue.Appearance.Normal.FontStyleDelta = FontStyle.Bold 
     'nameValue.Text = ds.Tables(0).Rows(i)("preferredName").ToString 
     ' 
     statusCaption.Text = "Status" 
     statusCaption.AnchorElement = nameValue 
     statusCaption.AnchorIndent = 14 
     statusCaption.Appearance.Normal.FontSizeDelta = -1 
     ' 
     statusValue.Column = TileView1.Columns("memberStatus") 
     statusValue.AnchorElement = statusCaption 
     statusValue.AnchorIndent = 2 
     statusValue.Appearance.Normal.FontStyleDelta = FontStyle.Bold 
     'statusValue.Text = ds.Tables(0).Rows(i)("memberStatus").ToString 
     ' 
     RGPCaption.Text = "RGP" 
     RGPCaption.AnchorElement = nameValue 
     RGPCaption.AnchorIndent = 65 
     'RGPCaption.TextLocation 
     'RGPCaption.Appearance.Normal.FontSizeDelta = -1 
     RGPCaption.Appearance.Normal.Font = New Font("Segoe UI Semibold", 12.0F, System.Drawing.FontStyle.Regular) 
     ' 
     RGPvalue.Column = TileView1.Columns("code") 
     RGPvalue.AnchorElement = RGPCaption 
     RGPvalue.AnchorIndent = 1 
     RGPvalue.TextAlignment = TileItemContentAlignment.BottomLeft 
     RGPvalue.Appearance.Normal.Font = New Font("Segoe UI Semilight", 25.75F, System.Drawing.FontStyle.Regular) 
     'RGPvalue.Text = ds.Tables(0).Rows(i)("code").ToString 
     ' 
     imageTile.Column = TileView1.Columns("ImageCol") 
     imageTile.ImageSize = New Size(120, 170) 
     imageTile.ImageAlignment = TileItemContentAlignment.MiddleRight 
     imageTile.ImageScaleMode = TileItemImageScaleMode.Stretch 
     imageTile.ImageLocation = New Point(12, 0) 

    Catch ex As Exception 
     XtraMessageBox.Show(ex.Message) 
    Finally 
     TileView1.EndUpdate() 
    End Try 
    'Next 


End Sub 

Private Sub loadBtn_Click(sender As Object, e As EventArgs) Handles loadBtn.Click 
     initData() 
     setupTile() 
End Sub 

UI

答えて

0

多分それは手遅れだが、私の場合にのみ、ディスクからファイルを読み込み、バイト()列に割り当てる必要があります。用

homesTable.Columns.Add("ImageCol")

homesTable.Columns.Add(New DataColumn("ImageCol", GetType(Byte)))

をその後、私は交換してみたい:

row_Renamed("ImageCol") = img

まず、テーブルの列には、その交換するバイト配列でなければなりません

バイト配列にディスク・ファイルをロードし、タイルに示します

row_Renamed("ImageCol") = IO.File.ReadAllBytes(row_Renamed("memberPhoto"))

:について

。例外を避けるためにファイルが存在するかどうかチェックします。

これは、ディスクからイメージをロードするために行うことです。

希望します。

関連する問題