zoukankan      html  css  js  c++  java
  • VB ListView罗列图片

     

    一开始听到job的要求,还真不知道如何下手,用Gridview?好像有做不到把图片show出来的。在网上搜索一遍,发现原来是ListView与Imglist的结合应用。

    看设计:

        Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
            Try
    
                Me.ListView1.Items.Clear()
                Me.imglist.Images.Clear()
    
                Dim str As String = ""
                Dim strWhere As String = ""
                str = "select t1.FEATCODE,t1.FEATTITL,T1.FEATDSC2,t2.featmgid from CD_Features  t1 left join CD_FeatureImages t2 on t1.FEATCODE=t2.FEATCODE" & _
                " where t1.FEATCODE like '" & Me.txtFeatureCode.Text.Trim & "%' and FEATTITL like '" & Me.txtTitle.Text.Trim & "%'" & _
                " and FEATDESC like '%" & Me.txtFeatureDescE.Text.Trim & "%' and FEATDSC2 like '%" & Me.txtFeatureDescC.Text.Trim & "%' "
    
                If Me.cboLayer.Text.Trim <> "" Then
                    str = str & " and substring(t1.FEATCODE,5,2) like'" & Me.cboLayer.SelectedValue.ToString & "%' "
                    strWhere = strWhere & " and substring(a.FEATCODE,5,2) like'" & Me.cboLayer.SelectedValue.ToString & "%' "
                End If
                If Me.cboComponent.Text.Trim <> "" Then
                    str = str & " and substring(t1.FEATCODE,3,2) like'" & Me.cboComponent.SelectedValue.ToString & "%' "
                    strWhere = strWhere & " and substring(a.FEATCODE,3,2) like'" & Me.cboComponent.SelectedValue.ToString & "%' "
                End If
                If Me.cboConstrustion.Text.Trim <> "" Then
                    str = str & " and substring(t1.FEATCODE,7,2) like'" & Me.cboConstrustion.SelectedValue.ToString & "%'"
                    strWhere = strWhere & " and substring(a.FEATCODE,7,2) like'" & Me.cboConstrustion.SelectedValue.ToString & "%'"
                End If
    
                Dim dt As DataTable = New DataTable
    
                dt = gData.GetDataTable(str, sqlConn)
    
                str = "SELECT A.FEATCODE,FEATTITL,SUM(DOPNSMV)SMV FROM dbo.CD_Features A1 INNER JOIN dbo.CD_FeatureOpns A ON A1.FEATCODE=A.FEATCODE" & _
                " INNER JOIN dbo.CD_DtledOperationSmv B ON A.DOPNCODE=B.DOPNCODE" & _
                " AND A.MACHCODE=B.MACHCODE AND A.STITINCH=B.STITINCH AND A.STITGAUG=B.STITGAUG" & _
                " AND A.NEEDLE=B.NEEDLE AND A.BOBBIN=B.BOBBIN AND A.TOPLOOP=B.TOPLOOP" & _
                " AND A.UNDLOOP=B.UNDLOOP WHERE A.FEATCODE like '" & Me.txtFeatureCode.Text.Trim & "%' and FEATTITL like '" & Me.txtTitle.Text.Trim & "%'"
    
                str = str & strWhere & " GROUP BY A.FEATCODE,FEATTITL"
    
                Dim dtSMV As DataTable = New DataTable
    
                dtSMV = gData.GetDataTable(str, sqlConn)
    
                Dim smv As Decimal = 0
    
                Dim k As Integer = 0 'imglist
    
                Dim indx As Integer = 0 '圖片
    
    
    
                For i As Integer = 0 To dt.Rows.Count - 1
    
                    Dim dr() As DataRow = dtSMV.Select("FEATCODE='" & dt.Rows(i).Item("FEATCODE").ToString & "'")
                    If dr.Length > 0 Then
                        smv = Decimal.Parse(dr(0).Item("SMV"))
                    Else
                        smv = 0
                    End If
                    If dt.Rows(i).Item("featmgid").ToString = "" Then
                        indx = 0
                    Else
                        indx = Int16.Parse(dt.Rows(i).Item("featmgid").ToString)
                    End If
                    Dim command As New SqlCommand("select image from cd_featureimages where FEATCODE='" & dt.Rows(i).Item("FEATCODE") & "' and FEATMGID=" & indx & "", SqlConnect)
                    Dim by As Byte() = DirectCast(command.ExecuteScalar(), Byte())
    
                    Dim myImage As System.Drawing.Image = LoadImage(by)
    
                    Me.ListView1.Items.Add(dt.Rows(i).Item("FEATCODE").ToString & ",Total SMV:" & smv & "," & Chr(13) & dt.Rows(i).Item("FEATTITL").ToString & Chr(13) & dt.Rows(i).Item("FEATDSC2").ToString)
    
                    If Not myImage Is Nothing Then
                        k = k + 1
                        Me.imglist.Images.Add(myImage)
                        Me.ListView1.Items(i).ImageIndex = k - 1
                    End If
                Next
    
            Catch ex As Exception
                MessageBox.Show(ex.ToString)
            End Try
        End Sub
    
        Private Function LoadImage(ByVal by As Byte()) As System.Drawing.Bitmap
            Try
                If by Is Nothing Then
                    Return Nothing
                End If
                Me.Cursor = Cursors.WaitCursor
                Dim m_PicW As Integer = 168
                Dim m_PicH As Integer = 140
                Dim ms As New IO.MemoryStream(by)
                Dim imgT As New PictureBox
                imgT.SizeMode = PictureBoxSizeMode.AutoSize
                imgT.Image = Image.FromStream(ms)
    
                Dim bmp As New System.Drawing.Bitmap(m_PicW, m_PicH)
                Dim grp As Graphics = Graphics.FromImage(bmp)
                Dim blueBrush As New SolidBrush(Color.White)
    
                grp.FillRectangle(blueBrush, 0, 0, m_PicW, m_PicH)
                Dim intW As Single
                Dim intH As Single
                If imgT.Width > m_PicW Then
                    intW = m_PicW
                    intH = imgT.Height * (m_PicW / imgT.Width)
                Else
                    intW = imgT.Width
                    intH = imgT.Height
                End If
                If intH > m_PicH Then
                    intH = m_PicH
                    intW = imgT.Width * (m_PicH / imgT.Height)
                End If
    
                grp.DrawImage(imgT.Image, (m_PicW - intW) / 2, (m_PicH - intH) / 2, intW, intH)
    
                ms.Close()
                Me.Cursor = Cursors.Default
                Return bmp
            Catch ex As Exception
                Me.Cursor = Cursors.Default
                MsgBox(ex.ToString, MsgBoxStyle.Critical, CD_SYSTEM_NAME)
                Return Nothing
            End Try
        End Function
  • 相关阅读:
    管理ceph缓存池
    Ceph更换OSD磁盘
    crushmap磁盘智能分组
    Angular 初体验
    音视频开发-FFmpeg
    开源项目OEIP 游戏引擎与音视频多媒体(UE4/Unity3D)
    Yolov3代码分析与训练自己数据集
    整合Yolov3到UE4/Unity3D
    CUDA版Grabcut的实现
    CUDA加opencv复现导向滤波算法
  • 原文地址:https://www.cnblogs.com/vinsonLu/p/3229377.html
Copyright © 2011-2022 走看看