none
Tool - Problem RRS feed

  • Frage

  • Hey Leute ich habe ein Problem mit meinem Tool,
    Ich habe ein MDI Form erstellt, und jetzt möchte ich die (FORM2) forms welche man einfügen kann, nur diese Drucken.
    Die Optionen sollten folgende Sein:
    Seitenrand: 1cm

    Ich konnte in Library nichts finden. Bitte helft mir oder gebt mir ein Link für die Library.
    Vielen Dank im Voraus


    Problem 2:
    ich habe das MDI Form nach der Library gemacht, doch es funzt nicht ganz
    Code:
    Public Class Form1
    
        Public Property MdiList() As Boolean
            Get
    
            End Get
            Set(ByVal value As Boolean)
    
            End Set
        End Property
        Private Sub menuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles menuItem2.Click
            Dim instance As MenuItem
            Dim value As Boolean
    
            value = instance.MdiList
    
            instance.MdiList = value
        End Sub
        Public Sub SetMDIList()
            ' Create the MenuItem to be used to display an MDI list.
            Dim menuItem1 As New MenuItem()
            ' Set this menu item to be used as an MDI list.
            menuItem1.MdiList = True
        End Sub
    
        Private Sub FensterToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FensterToolStripMenuItem.Click
            Dim NewMDIChild As New Form2()
            'Set the Parent Form of the Child window.
            NewMDIChild.MdiParent = Me
            'Display the new form.
            NewMDIChild.Show()
        End Sub
    
        Private Sub DruckenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DruckenToolStripMenuItem.Click
            PrintForm1.Print(Me, PowerPacks.Printing.PrintForm.PrintOption.ClientAreaOnly)
        End Sub
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Me.WindowState = FormWindowState.Maximized
        End Sub
    End Class
    Es meldet immer, dass instance fehlt, was soll ich tun?

    Vielen dank
    LG Yves Riedener
    Donnerstag, 22. Oktober 2009 19:26

Antworten

  • Jetzt sehe ich erst, wo Du den Code her hast. In der MSDN zur Dokumentation der MdiList Eigenschaft findet man ihn ja wieder. Kann aber weder so funktionieren, wie Du es versucht hast, noch so, wie es in der Doku geschrieben ist. Das Beispiel dort ist unvollständig, da das erstellte MenuItem noch dem MainMenu oder einem anderen MenuItem zugeordnet werden müsste, damit es auch angezeigt wird:

    Public Sub SetMDIList()
        ' Create the MenuItem to be used to display an MDI list.
        Dim menuItem1 As New MenuItem("Fenster")
    
        menuItem1.MdiList = True
    
        Me.Menu.MenuItems.Add(menuItem1)
    End Sub
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      SetMDIList()
    End Sub

    Dürfte aber für Deine Anwendung ungeeignet sein, da Du wohl das neuere ToolStripMenu verwendest. In dem Fall muss das ganze etwas anders aussehen:

    Public Sub SetMDIList()
      Dim menuItem1 As New ToolStripMenuItem("Fenster")
    
      Me.MainMenuStrip.Items.Add(menuItem1)
      Me.MainMenuStrip.MdiWindowListItem = menuItem1
    End Sub
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      SetMDIList()
    End Sub

    Um das jeweils aktuelle MDI Child zu drucken, kannst Du die ActiveMdiChild Eigenschaft verwenden:

       PrintForm1.Print(Me.ActiveMdiChild, PowerPacks.Printing.PrintForm.PrintOption.ClientAreaOnly)
    


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Samstag, 31. Oktober 2009 21:16
    Moderator
  • Zu 1.
    How to: Print a Form by Using the PrintForm Component (Visual Basic)
    http://msdn.microsoft.com/en-us/library/bb629268.aspx

    Zu 2.

    Du schreibst:
       Private Sub menuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles menuItem2.Click
            Dim instance As MenuItem
            Dim value As Boolean
    
            value = instance.MdiList
            instance.MdiList = value
       End Sub
    Hier hast Du alleine eine Variable "instance", die aber auf nichts verweist. Selbst wenn Du hier schreiben würdest:

    Dim instance As New MenuItem

    Ergibt Dein Codefragment recht wenig Sinn. Vielleicht kannst Du noch genauer erklären, was Du erreichen möchtest.

    Sonntag, 25. Oktober 2009 13:55
    Moderator

Alle Antworten

  • Zu 1.
    How to: Print a Form by Using the PrintForm Component (Visual Basic)
    http://msdn.microsoft.com/en-us/library/bb629268.aspx

    Zu 2.

    Du schreibst:
       Private Sub menuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles menuItem2.Click
            Dim instance As MenuItem
            Dim value As Boolean
    
            value = instance.MdiList
            instance.MdiList = value
       End Sub
    Hier hast Du alleine eine Variable "instance", die aber auf nichts verweist. Selbst wenn Du hier schreiben würdest:

    Dim instance As New MenuItem

    Ergibt Dein Codefragment recht wenig Sinn. Vielleicht kannst Du noch genauer erklären, was Du erreichen möchtest.

    Sonntag, 25. Oktober 2009 13:55
    Moderator
  • Hallo Yves Riedener,

    Ich gehe davon aus, dass die Antwort Dir weitergeholfen hat.
    Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.

    Grüße,
    Robert

    Freitag, 30. Oktober 2009 17:49
    Moderator
  • Es hat mir ein bisschen weiter geholfen.
    Das Ziel des Codes ist/war dass man die einzelnen Fenster/MDI Children in dem MenuItem "Fenster" aufgelistet sehen kann. Habe das von einer Webseite, leider weiss ich nicht mehr von wo... :-(
    Ich hoffe dass ihr mir helfen könnt.

    Ps. Sorry dass ich nicht geantwortet habe, aber ich war in den Ferien(Türkei) ^^

    LG Yves Riedener
    Samstag, 31. Oktober 2009 17:53
  • Jetzt sehe ich erst, wo Du den Code her hast. In der MSDN zur Dokumentation der MdiList Eigenschaft findet man ihn ja wieder. Kann aber weder so funktionieren, wie Du es versucht hast, noch so, wie es in der Doku geschrieben ist. Das Beispiel dort ist unvollständig, da das erstellte MenuItem noch dem MainMenu oder einem anderen MenuItem zugeordnet werden müsste, damit es auch angezeigt wird:

    Public Sub SetMDIList()
        ' Create the MenuItem to be used to display an MDI list.
        Dim menuItem1 As New MenuItem("Fenster")
    
        menuItem1.MdiList = True
    
        Me.Menu.MenuItems.Add(menuItem1)
    End Sub
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      SetMDIList()
    End Sub

    Dürfte aber für Deine Anwendung ungeeignet sein, da Du wohl das neuere ToolStripMenu verwendest. In dem Fall muss das ganze etwas anders aussehen:

    Public Sub SetMDIList()
      Dim menuItem1 As New ToolStripMenuItem("Fenster")
    
      Me.MainMenuStrip.Items.Add(menuItem1)
      Me.MainMenuStrip.MdiWindowListItem = menuItem1
    End Sub
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      SetMDIList()
    End Sub

    Um das jeweils aktuelle MDI Child zu drucken, kannst Du die ActiveMdiChild Eigenschaft verwenden:

       PrintForm1.Print(Me.ActiveMdiChild, PowerPacks.Printing.PrintForm.PrintOption.ClientAreaOnly)
    


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    Samstag, 31. Oktober 2009 21:16
    Moderator
  • Danke, Danke, Danke das hat mir echt weitergeholfen...
    vielen dank:-)
    LG Yves Riedener
    Sonntag, 1. November 2009 17:05