Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/02/2011, 09:26
matarasky
 
Fecha de Ingreso: julio-2010
Mensajes: 20
Antigüedad: 12 años
Puntos: 0
referencia a objeto no establecida com instancia de un objeto,Proyecto ImprimirListVi

Estimados lo que sucede es que estoy tratando de imprimir un listview,
aunque trato de darle varios formatos un Setup, Preview y un Print de Impresión.
tengo el siguiente código en una dll creada en visual basic 2010(framework 2)
Realizo esta consulta y me arroja en tiempo de ejecucion la referencia a objeto no establecida. siendo que esta esta siendo utilizada.
Código:
Imports PrintableListView
Imports System
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Windows.Forms
   Public Class MainForm
        Inherits Form

Dim vform2 As PrintableListView.PrintableListView
 Private Sub m_btnPageSetup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m_btnPageSetup.Click
            vform2.PageSetup()
            'Me.m_list.PageSetup()
        End Sub

   End Class
End Namespace
Código:
Imports System
Imports System.ComponentModel
Imports System.Drawing
Imports System.Drawing.Printing
Imports System.Windows.Forms

Namespace PrintableListView
    Public Class PrintableListView
        Inherits ListView

        Public Sub PageSetup()
            Me.m_setupDlg.ShowDialog
        End Sub
        Private Sub PreparePrint()
            Me.m_fListWidth = 0!
            Me.m_arColsWidth = New Single(MyBase.Columns.Count  - 1) {}
            Dim g As Graphics = MyBase.CreateGraphics
            Me.m_fDpi = g.DpiX
            g.Dispose
            Dim i As Integer
            For i = 0 To MyBase.Columns.Count - 1
                Dim ch As ColumnHeader = MyBase.Columns.Item(i)
                Dim fWidth As Single = (((CSng(ch.Width) / Me.m_fDpi) * 100!) + 1!)
                Me.m_fListWidth = (Me.m_fListWidth + fWidth)
                Me.m_arColsWidth(i) = fWidth
            Next i
            Me.m_fListWidth += 1
        End Sub
        Public Sub Print()
            Me.m_printDlg.AllowSelection = (MyBase.SelectedItems.Count > 0)
            If (Me.m_printDlg.ShowDialog(Me) = DialogResult.OK) Then
                Me.m_printDoc.DocumentName = Me.m_strTitle
                Me.m_bPrintSel = (Me.m_printDlg.PrinterSettings.PrintRange = PrintRange.Selection)
                Me.m_nPageNumber = 1
                Me.m_printDoc.Print
            End If
        End Sub


 Public m_previewDlg As PrintPreviewDialog = New PrintPreviewDialog
        Public m_printDlg As PrintDialog = New PrintDialog
        Public m_printDoc As PrintDocument = New PrintDocument
        Public m_setupDlg As PageSetupDialog = New PageSetupDialog
        Public m_strTitle As String = ""
    End Class
End Namespace

Llevo como 3 días y no cacho mucho . lo que trate de hacer fue llevar un código en C# que encontré y funciona pero no me resulto al llevarlo a visual basic.
[URL="http://www.codeproject.com/KB/list/PrintableListView/PrintableListView_src.zip"]aquí les dejo el enlace[/URL]

Última edición por matarasky; 08/02/2011 a las 09:54