Imports System.ComponentModel Public Class VersionHistory ''' ''' 列名 ''' Public ColumnName As New Dictionary(Of String, String) Public DataList As New List(Of Dictionary(Of String, String)) Public RowData As Dictionary(Of String, String) Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load ColumnName.Add("ID", "ID") ColumnName.Add("XML_FileName", "文件名") ColumnName.Add("Version", "版本") ColumnName.Add("UploadDateTime", "上传时间") ColumnName.Add("Author", "作者") ColumnName.Add("Remark", "备注") ColumnName.Add("ConfigApp_Ver", "软件版本") FillTable() End Sub Public Sub HVTabInit() HVTab.Cols = 7 HVTab.DisplayRowNumber = True HVTab.Rows = 1 HVTab.SelectionBorderColor = Color.Red HVTab.Width = 900 'HVTab.HScrollbarVisible = False For i As Integer = 0 To ColumnName.Count - 1 With HVTab.Cell(0, i) .Text = ColumnName.Values(i) .BackColor = Color.LightGray .ForeColor = Color.Blue .Font = New Font($"Arial", 9, FontStyle.Bold) End With With HVTab.Column(i) If ColumnName.Keys(i).Equals("ID") Then .Alignment = FlexCell.AlignmentEnum.LeftGeneral .Width = 30 .Locked = True ElseIf ColumnName.Keys(i).Equals("XML_FileName") Then .Alignment = FlexCell.AlignmentEnum.LeftGeneral .Width = 300 .Locked = True ElseIf ColumnName.Keys(i).Equals("Version") Then .Alignment = FlexCell.AlignmentEnum.LeftGeneral .Width = 30 .Locked = True ElseIf ColumnName.Keys(i).Equals("UploadDateTime") Then .Alignment = FlexCell.AlignmentEnum.LeftGeneral .Width = 100 .Locked = True ElseIf ColumnName.Keys(i).Equals("Author") Then .Alignment = FlexCell.AlignmentEnum.LeftGeneral .Width = 70 .Locked = True ElseIf ColumnName.Keys(i).Equals("Remark") Then .Alignment = FlexCell.AlignmentEnum.LeftGeneral .Width = 270 .Locked = True ElseIf ColumnName.Keys(i).Equals("ConfigApp_Ver") Then .Alignment = FlexCell.AlignmentEnum.LeftGeneral .Width = 80 .Locked = True End If End With Next 'HVTab.EnableVisualStyles = True HVTab.SelectionMode = FlexCell.SelectionModeEnum.ByRow End Sub 'Private Sub HVTab_ButtonClick(Sender As Object, e As FlexCell.Grid.ButtonClickEventArgs) Handles HVTab.ButtonClick ' If e.Col = ColumnName.Count - 2 Then ' If Not IsNothing(DataList) AndAlso DataList.Count > 0 Then ' RaiseEvent DownloadFile(DataList.Item(e.Row - 1)) ' End If ' ElseIf e.Col = ColumnName.Count - 1 Then ' If Not IsNothing(DataList) AndAlso DataList.Count > 0 Then ' Me.Enabled = False ' RaiseEvent IssueFile(DataList.Item(e.Row - 1)) ' End If ' End If 'End Sub ''' ''' 填充表 ''' Public Sub FillTable() HVTabInit() For i As Integer = 0 To DataList.Count - 1 With HVTab.Row(i) .Height = 20 End With Dim dic As Dictionary(Of String, String) = DataList.Item(i) HVTab.AddItem("") For j As Integer = 1 To ColumnName.Count - 1 Dim text As String = dic.Item(ColumnName.Keys(j)) ' HVTab.Cell(i + 1, j).WrapText = True HVTab.Cell(i + 1, j).Text = text HVTab.Cell(i + 1, j).Locked = True Next Next End Sub Public Event DownloadFile(ftpflag As Dictionary(Of String, String)) Public Event IssueFile(ftpflag As Dictionary(Of String, String)) Public Event OnOpenFile(ftpflag As Dictionary(Of String, String)) Private Sub HVTab_Click(Sender As Object, e As EventArgs) Handles HVTab.Click If HVTab.ActiveCell.Row > 0 Then xml_lab.Text = HVTab.Cell(HVTab.ActiveCell.Row, 1).DisplayText Label1.Text = HVTab.Cell(HVTab.ActiveCell.Row, 5).DisplayText 'Label1.Font = xml_lab.Font ' Dim CellStr As String = $"选中个格{HVTab.ActiveCell.Row},{ HVTab.ActiveCell.Col}:{ HVTab.Cell(HVTab.ActiveCell.Row, HVTab.ActiveCell.Col).Text}" ' Dim RowStr As String = $"选中行({HVTab.ActiveCell.Row}):" ' For j As Integer = 0 To ColumnName.Count - 1 ' If j = 0 Then ' RowStr = RowStr & $"{j} : {HVTab.ActiveCell.Row} " & vbCrLf ' Else ' RowStr = RowStr & $"{j} : {HVTab.Cell(HVTab.ActiveCell.Row, j).DisplayText } " & vbCrLf ' End If ' Next ' LabelX1.Text = RowStr & vbCrLf & CellStr End If End Sub Private Sub OpenFile_Click(sender As Object, e As EventArgs) If HVTab.ActiveCell.Row > 0 Then If Not IsNothing(DataList) AndAlso DataList.Count > 0 Then RaiseEvent OnOpenFile(DataList.Item(HVTab.ActiveCell.Row - 1)) End If Else MsgBox("未选中文件") End If End Sub Private Sub VersionHistory_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing End Sub Private Sub VersionHistory_FormClosed(sender As Object, e As FormClosedEventArgs) Handles MyBase.FormClosed Dim dic As New Dictionary(Of String, String) RaiseEvent DownloadFile(dic) End Sub Private Sub DownFile_btn_Click_1(sender As Object, e As EventArgs) Handles DownFile_btn.Click BtnSevenClick(DialogResult.OK) End Sub Private Sub ReleaseFile_Click_1(sender As Object, e As EventArgs) Handles ReleaseFile.Click BtnSevenClick(DialogResult.Abort) End Sub Private Sub OpenFile_Click_1(sender As Object, e As EventArgs) Handles OpenFile.Click BtnSevenClick(DialogResult.Yes) End Sub Public sub BtnSevenClick(bunber As DialogResult ) RowData =Nothing If HVTab.ActiveCell.Row > 0 Then If Not IsNothing(DataList) AndAlso DataList.Count > 0 Then RowData = DataList.Item(HVTab.ActiveCell.Row - 1) Me.DialogResult = bunber End If Else MsgBox("未选中文件") End If End sub End Class