Benutzer mit den meisten Antworten
Tool - Problem

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
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- Als Antwort vorgeschlagen Robert BreitenhoferModerator Sonntag, 1. November 2009 11:04
- Als Antwort markiert Yves Riedener Sonntag, 1. November 2009 17:03
-
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.
- Als Antwort vorgeschlagen Thorsten DörflerModerator Freitag, 30. Oktober 2009 17:36
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 30. Oktober 2009 17:48
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.
- Als Antwort vorgeschlagen Thorsten DörflerModerator Freitag, 30. Oktober 2009 17:36
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 30. Oktober 2009 17:48
-
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 -
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- Als Antwort vorgeschlagen Robert BreitenhoferModerator Sonntag, 1. November 2009 11:04
- Als Antwort markiert Yves Riedener Sonntag, 1. November 2009 17:03