tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^2: PrintPageイベントを発生させる方法
投稿日: 2008/01/21(Mon) 11:34
投稿者k58
> 何方からも回答が無いのは、何がやりたくて、現状はどのようにしていて、どうなって
> いるのかが、これを見ている人には伝わらないからです。
>
> >PrintPageイベントを発生させる方法
> 上記は、やりたい事ではなく、貴方が、やりたい事を実現させる為に考えた、方法の
> 話で、本来は、印刷する為に貴方がどのようなコードを書いて、どこが拙くて印刷
> 出来ないかが問題かと思うのでその辺がこれを見ている人に伝わるように、事象を再現
> できる簡単なコード書いて投稿でもされないとレスがつかないかと。
>
> 想像するに下記と同様な事だとは思うのですが。
>
>  http://hanatyan.sakura.ne.jp/bbs/wforum.cgi?mode=allread&no=1910



花ちゃん 様
自分の説明が不足なので、申し訳ございません。目的が、一つの画面(フォーム)で、検索条件を変えながら、売上のプレビュー結果を確認したいのことです。フォームのLoad時点で、プレビューできますが、それ以後に画面の更新できません。Buttonの押す動作をPrintPageと連動できません。PrintPageが二度と発生しません。
説明の為に、コートの抜粋をリストします。どこが問題があるのがご指導を宜しくお願いします。

'-----------------------------------------

Public Class Form1

    Dim mPrintd As New System.Drawing.Printing.PrintDocument
    Dim mPpc As New PrintPreviewControl
    Dim mData As String
    Dim mRowOfPage As Integer = 30
    Dim mCurrentRow As Integer
    Dim mKikan1 As New DateTimePicker '集計期間
    Dim mKikan2 As New DateTimePicker '集計期間

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
        'mKikan1, mKikan2 集計期間を変えれば、ここから再プレビューしたいですが、上手く行かない PrintPage を発生させないです
    End Sub

    Private Sub mPrintd_PrintPage(ByVal sender As Object, _
            ByVal e As Printing.PrintPageEventArgs)
        Dim g As Graphics = e.Graphics
        g.PageUnit = GraphicsUnit.Point
        mCurrentRow = 10
        g.DrawString(mData, New Font("MS Pゴシック", 12), Brushes.Black, 20, 25)

        If mCurrentRow < mRowOfPage Then
            e.HasMorePages = False
        Else
            e.HasMorePages = True

        End If

    End Sub


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        AddPrintDocument()
        mData = "ここには売上集計の結果を表示する。" & vbCrLf & "売上集計期間を変えれば、再び、売上集計の結果をここに確認したいです"
    End Sub
    Private Sub AddPrintDocument()
        AddHandler mPrintd.PrintPage, AddressOf mPrintd_PrintPage

        Controls.Add(mPpc)

        Dim t_h As Integer = Button1.Top + Button1.Height
        mPpc.Location = New Point(0, t_h)
        mPpc.Size = New Size(Me.Width - t_h, Me.Height - 2 * t_h)
        mPpc.Zoom = 1
        mPpc.Document = mPrintd
        mPrintd.DefaultPageSettings.Landscape = True

    End Sub

End Class
'----------------------------------------

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。