Click here to Skip to main content
15,885,546 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
I want to change pages with mouse wheel in print preview dialog.

I have this code but it is not working:

in Form1 code is:

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            Meni m1 = new Meni();
            m1.Natisni();
        }


in Meni.cs code is:

        bool narejeno = false;
        public void Natisni()
        {

            printPreviewDialog1.Document = printDocument1;

            if (!narejeno)
            {
                printDocument1.PrintPage += new PrintPageEventHandler(natisniDokument_NatisniStran);
                narejeno = true;
            }

            printPreviewDialog1.UseAntiAlias = true;


            printPreviewDialog1.ShowDialog();

            printPreviewDialog1.MouseWheel += new MouseEventHandler(eventZaPrintPreview_MouseWheel); 

        }

        private void eventZaPrintPreview_MouseWheel(object sender, MouseEventArgs e)
        {
            if (e.Delta >0)
            {
                SendKeys.Send("{UP}");
            }
            else
            {
                SendKeys.Send("{DOWN}");
            }
        } 

Where to put the event? But it must be in Meni.cs
Posted
Updated 4-Mar-22 5:59am
Comments
Sergey Alexandrovich Kryukov 1-Mar-13 13:51pm    
"Not working" is not informative". "Where to put the event" is not a valid question. Please use "Improve question", below, to make the problem addressable.
Just one note: using SendKeys for UI is a big abuse. Don't do it. Use a mouse event.
—SA
Sergey Alexandrovich Kryukov 1-Mar-13 13:52pm    
System.Windows.Forms? Tag: "WinForms". (Or any UI library or application type you use, always.)
—SA

1 solution

I have done and it is working with the following code (in VB.net)
- you can change it to C# easily

1- First you should to know the number of pages, so count the page number in printpage event (PrintDocument1.PrintPage) (in my code the Variable name is Mpage)

2-Now you can easily change the pages with mouse wheel event as shown below

Private Sub PrintPreviewDialog1_MouseWheel(sender As Object, e As MouseEventArgs) Handles PrintPreviewDialog1.MouseWheel

If e.Delta > 0 And not Thispage = 0 Then
Thispage -= 1
PrintPreviewDialog1.PrintPreviewControl.StartPage = Thispage
ElseIf e.Delta < 0 And not Thispage = Mpage Then
Thispage += 1
PrintPreviewDialog1.PrintPreviewControl.StartPage = Thispage
End If

End Sub
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900