Imports System.Windows.Forms Imports System.Drawing Class ThumbViewer Declare Auto Function SetParent Lib "user32.dll" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Integer Declare Auto Function SendMessage Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer Private Const WM_SYSCOMMAND As Integer = 274 Private Const SC_MAXIMIZE As Integer = 61488 Private myImageList As System.Windows.Forms.ImageList = New ImageList() Private myImageListSmall As System.Windows.Forms.ImageList = New ImageList() Private myImageListLarge As System.Windows.Forms.ImageList = New ImageList() Private count As Integer = 0 Private DefaultSplitsize As Integer Dim m_data As DataTable Dim d As New clsDok Property Data As DataTable Get Return m_data End Get Set(value As DataTable) m_data = value Try AddImages() large_images() Catch End Try End Set End Property Dim m_previewfilename As String Property PreviewFilename As String Get Return m_previewfilename End Get Set(value As String) m_previewfilename = value End Set End Property Sub New() ' Dieser Aufruf ist für den Designer erforderlich. InitializeComponent() myImageList.ImageSize = New Size(50, 50) myImageListSmall.ImageSize = New Size(32, 32) myImageListLarge.ImageSize = New Size(80, 80) Me.TrackBar1.Minimum = 20 Me.TrackBar1.Maximum = 256 Me.TrackBar1.Value = 80 Me.DefaultSplitsize = Me.SplitContainer1.SplitterDistance End Sub Public Function AddImage(ByVal imagefile As Object, ByVal name As String, ByVal key As Integer) Dim img As System.Drawing.Image img = GetImagefromDB(imagefile) myImageList.Images.Add(img) myImageListSmall.Images.Add(img) myImageListLarge.Images.Add(img) ListView1.LargeImageList = myImageListLarge Dim lvitem As New ListViewItem lvitem.ImageIndex = count lvitem.Text = name lvitem.Tag = key ListView1.Items.Add(lvitem) count += 1 End Function Public Function AddImages() Me.ListView1.Items.Clear() For Each r As DataRow In Me.Data.Rows Try Dim ext As String ext = UCase(System.IO.Path.GetExtension(r("pfad"))) Dim img As System.Drawing.Image Select Case ext Case ".PDF" img = Me.ImageList1.Images(0) Case ".MSG" img = Me.ImageList1.Images(3) Case ".DOCX", ".DOCM", ".DOC", ".DOC" img = Me.ImageList1.Images(1) Case ".XLSX", "XLSM", ".XLS", "XLM" img = Me.ImageList1.Images(2) Case ".TIF", ".TIFF", ".JPG", ".PNG", ".BMP" img = GetImagefromDB(r.Item("dokumentfile")) Case Else img = Me.ImageList1.Images(5) End Select myImageList.Images.Add(img) myImageListSmall.Images.Add(img) myImageListLarge.Images.Add(img) ListView1.LargeImageList = myImageListLarge Dim lvitem As New ListViewItem lvitem.ImageIndex = count lvitem.Text = r.Item("bezeichnung") lvitem.Tag = r.Item(0) lvitem.ToolTipText = ext ListView1.Items.Add(lvitem) count += 1 Catch End Try Next End Function Public Function GetImagefromDB(ByVal imgfield As Object) As Image Dim IMGC As New ImageConverter Dim IMGPIC As Image = CType(IMGC.ConvertFrom(imgfield), Image) Return IMGPIC End Function Dim InitLIst As Boolean = False Public Function SearchItem(ByVal Key As Integer) Dim i As Integer = 0 InitLIst = True For Each item As ListViewItem In Me.ListView1.Items item.Focused = False item.Selected = False Next InitLIst = False For Each item As ListViewItem In Me.ListView1.Items item.Focused = False item.Selected = False If item.Tag = Key Then item.Focused = True item.Selected = True 'Me.ListView1.Items(i).Focused = True 'Me.ListView1.Items(i).Selected = True End If i = i + 1 Next End Function Private Sub ListView1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListView1.SelectedIndexChanged If InitLIst Then Exit Sub Try Dim key As Integer key = ListView1.FocusedItem.Tag Dim previewfilename As String = "" If Globals.PreViewDir = "" Then Dim db As New clsDB db.Get_Tabledata("dms", "", "Select * from dms_Settings where nreintrag=6") Globals.PreViewDir = db.dsDaten.Tables(0).Rows(0).Item(2) If Not System.IO.Directory.Exists(Globals.PreViewDir) Then System.IO.Directory.CreateDirectory(Globals.PreViewDir) End If End If Dim txt As String txt = ListView1.FocusedItem.ToolTipText Select Case txt Case ".PDF" previewfilename = d.Get_Dokument(key, Globals.PreViewDir, True, True) Me.KpImageViewer1.Visible = False Me.grpdokumentvorschau.Visible = False Me.grpdokumentvorschaupdf.Visible = True Me.GrpDokumentvorschauMail.Visible = False Me.grpdokumentvorschaupdf.Dock = DockStyle.Fill Try Me.WebBrowser2.Navigate(previewfilename) Catch End Try Me.pdfViewerControl1.RenderingEngine = Syncfusion.Windows.Forms.PdfViewer.PdfRenderingEngine.Pdfium Me.pdfViewerControl1.ReferencePath = Application.StartupPath + "" 'Me.pdfViewerControl1.Load(previewfilename) Dim p As System.Diagnostics.Process ''Me.ppdf.Dock = DockStyle.Fill 'p = Process.Start(previewfilename) 'p.WaitForInputIdle() 'SetParent(p.MainWindowHandle, ppdf.Handle) 'SendMessage(p.MainWindowHandle, WM_SYSCOMMAND, SC_MAXIMIZE, 0) Case ".MSG" Me.KpImageViewer1.Visible = False Me.grpdokumentvorschaupdf.Visible = False Me.grpdokumentvorschau.Visible = False Me.GrpDokumentvorschauMail.Visible = True Me.GrpDokumentvorschauMail.Dock = DockStyle.Fill previewfilename = d.Get_Dokument(key, Globals.PreViewDir, True, True) Dim msgreader As New MsgReader.Reader Dim files = msgreader.ExtractToFolder(previewfilename, Globals.PreViewDir) Dim err = msgreader.GetErrorMessage webBrowser1.Navigate(files(0)) Case ".TIF", ".TIFF", ".JPG", ".PNG", ".BMP" Me.KpImageViewer1.Visible = True Me.grpdokumentvorschaupdf.Visible = False Me.grpdokumentvorschau.Visible = False Me.GrpDokumentvorschauMail.Visible = False Me.KpImageViewer1.Dock = DockStyle.Fill 'Me.KpImageViewer1.DoResize() For Each r As DataRow In Data.Rows If r.Item(0) = key Then Me.KpImageViewer1.Image = GetImagefromDB(r.Item("dokumentfile")) End If Next Case Else previewfilename = d.Get_Dokument(key, Globals.PreViewDir, True, True) Me.KpImageViewer1.Visible = False Me.grpdokumentvorschaupdf.Visible = False Me.grpdokumentvorschau.Visible = True Me.GrpDokumentvorschauMail.Visible = False Me.grpdokumentvorschau.Dock = DockStyle.Fill Try 'Threading.Thread.CurrentThread.Sleep(1000) Try DocumentViewer1.CloseDocument() Catch End Try Try Me.DocumentViewer1.LoadDocument(previewfilename) Catch End Try Catch es As Gnostice.Core.XDocException End Try End Select Catch End Try End Sub Private Sub ToolStripButton1_Click(sender As Object, e As EventArgs) Handles ToolStripButton1.Click large_images() Me.TrackBar1.Visible = True End Sub Public Sub large_images() Dim imglst As New ImageList imglst.ImageSize = New Size(Me.TrackBar1.Value, Me.TrackBar1.Value) imglst.Images.Clear() For n As Int32 = 0 To myImageListLarge.Images.Count - 1 imglst.Images.Add(myImageListLarge.Images(n)) Next ListView1.LargeImageList = imglst ListView1.View = View.LargeIcon End Sub Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click ListView1.SmallImageList = myImageListSmall ListView1.View = View.SmallIcon End Sub Private Sub ToolStripButton3_Click(sender As Object, e As EventArgs) Handles ToolStripButton3.Click ListView1.View = View.List End Sub Private Sub TrackBar1_Scroll(sender As Object, e As EventArgs) Handles TrackBar1.Scroll large_images() End Sub Private Sub ToolStripButton4_Click(sender As Object, e As EventArgs) Handles ToolStripButton4.Click If Me.SplitContainer1.Panel2.Visible Then Me.SplitContainer1.Panel2.Visible = False Me.DefaultSplitsize = Me.SplitContainer1.Panel1.Width Me.SplitContainer1.SplitterDistance = Me.SplitContainer1.Width Else Me.SplitContainer1.Panel2.Visible = True Me.SplitContainer1.SplitterDistance = DefaultSplitsize End If End Sub Private Sub KpImageViewer1_Load(sender As Object, e As EventArgs) End Sub #Region "Gnostic" Private Sub tsActSize_Click(sender As Object, e As EventArgs) Handles tsActSize.Click If DocumentViewer1.IsDocumentLoaded Then DocumentViewer1.Zoom.ZoomMode = Gnostice.Documents.Controls.WinForms.ZoomMode.ActualSize End If End Sub Private Sub tsFitPage_Click(sender As Object, e As EventArgs) Handles tsFitPage.Click If DocumentViewer1.IsDocumentLoaded Then DocumentViewer1.Zoom.ZoomMode = Gnostice.Documents.Controls.WinForms.ZoomMode.FitPage End If End Sub Private Sub tsFitWidth_Click(sender As Object, e As EventArgs) Handles tsFitWidth.Click If DocumentViewer1.IsDocumentLoaded Then DocumentViewer1.Zoom.ZoomMode = Gnostice.Documents.Controls.WinForms.ZoomMode.FitWidth End If End Sub Private Sub tsZoomOut_Click(sender As Object, e As EventArgs) Handles tsZoomOut.Click If DocumentViewer1.IsDocumentLoaded Then DocumentViewer1.ZoomOut() End If End Sub Private Sub tsZoomIn_Click(sender As Object, e As EventArgs) Handles tsZoomIn.Click If DocumentViewer1.IsDocumentLoaded Then DocumentViewer1.ZoomIn() End If End Sub Private Sub btnFirstPage_Click(sender As Object, e As EventArgs) Handles btnFirstPage.Click If DocumentViewer1.IsDocumentLoaded Then DocumentViewer1.FirstPage() End If End Sub Private Sub btnPrvPage_Click(sender As Object, e As EventArgs) Handles btnPrvPage.Click If DocumentViewer1.IsDocumentLoaded Then DocumentViewer1.PreviousPage() End If End Sub Private Sub btnNxtPage_Click(sender As Object, e As EventArgs) Handles btnNxtPage.Click If DocumentViewer1.IsDocumentLoaded Then DocumentViewer1.NextPage() End If End Sub Private Sub btnLastPage_Click(sender As Object, e As EventArgs) Handles btnLastPage.Click If DocumentViewer1.IsDocumentLoaded Then DocumentViewer1.LastPage() End If End Sub Private Sub ToolStripButton5_Click(sender As Object, e As EventArgs) Handles ToolStripButton5.Click DocumentViewer1.RotatePagesAntiClockwise90() End Sub Private Sub ToolStripButton6_Click(sender As Object, e As EventArgs) Handles ToolStripButton6.Click DocumentViewer1.RotatePagesClockwise90() End Sub Private Sub txtGoToPage_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles txtGoToPage.KeyDown Select Case e.KeyCode Case Keys.NumPad0, Keys.NumPad1, Keys.NumPad2, Keys.NumPad3, Keys.NumPad4, Keys.NumPad5, Keys.NumPad6, Keys.NumPad7, Keys.NumPad8, Keys.NumPad9, Keys.Delete, Keys.[End], Keys.Home, Keys.Down, Keys.Up, Keys.Left, Keys.Right, Keys.Back e.SuppressKeyPress = False Exit Select Case Keys.D0, Keys.D1, Keys.D2, Keys.D3, Keys.D4, Keys.D5, Keys.D6, Keys.D7, Keys.D8, Keys.D9 If e.Shift Then e.SuppressKeyPress = True Else e.SuppressKeyPress = False End If Exit Select Case Keys.Enter e.SuppressKeyPress = False If txtGoToPage.Text.Trim() <> "" Then DocumentViewer1.GoToPage(Convert.ToInt32(txtGoToPage.Text)) End If Exit Select Case Else e.SuppressKeyPress = True Exit Select End Select End Sub Private Sub txtZoom_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles txtZoom.KeyDown Select Case e.KeyCode Case Keys.NumPad0, Keys.NumPad1, Keys.NumPad2, Keys.NumPad3, Keys.NumPad4, Keys.NumPad5, Keys.NumPad6, Keys.NumPad7, Keys.NumPad8, Keys.NumPad9, Keys.Delete, Keys.[End], Keys.Home, Keys.Down, Keys.Up, Keys.Left, Keys.Right, Keys.Back e.SuppressKeyPress = False Exit Select Case Keys.D0, Keys.D1, Keys.D2, Keys.D3, Keys.D4, Keys.D5, Keys.D6, Keys.D7, Keys.D8, Keys.D9 If e.Shift Then e.SuppressKeyPress = True Else e.SuppressKeyPress = False End If Exit Select Case Keys.Enter e.SuppressKeyPress = False DocumentViewer1.Zoom.ZoomPercent = Double.Parse(txtZoom.Text) Exit Select Case Else e.SuppressKeyPress = True Exit Select End Select End Sub #End Region End Class