qingtong1166 发表于 2016-11-23 21:54:35

tx textControl设置打印范围无效!

如题:
      Dim MyPrintDoc As PrintDocument = New PrintDocument()
      MyPrintDoc.PrinterSettings.FromPage = 2
      MyPrintDoc.PrinterSettings.ToPage =3
      MyPrintDoc.PrinterSettings.PrintRange = PrintRange.SomePages
      Me.TextControl1.PrintPreview(MyPrintDoc)

这段代码打印出来是所有的页面

gw0506 发表于 2016-11-23 23:39:28

你去掉PrintRange设置这句。我测试下面代码是正确的。
            PrintDocument myPrintDocument = new PrintDocument();

            myPrintDocument.PrinterSettings.FromPage = 2;
            myPrintDocument.PrinterSettings.ToPage = 3;
            //textControl1.Print(myPrintDocument);
            textControl1.PrintPreview(myPrintDocument);

qingtong1166 发表于 2016-11-24 07:51:43

这是示例程序中的代码,打印出来仍然是全部的页面
Private Sub WithoutDialogToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles WithoutDialogToolStripMenuItem.Click
      Dim myPrintDocument As New System.Drawing.Printing.PrintDocument
      myPrintDocument.PrinterSettings.FromPage = 1
      myPrintDocument.PrinterSettings.ToPage = 1
      TextControl1.Print(myPrintDocument)
    End Sub

qingtong1166 发表于 2016-11-24 07:56:23

示例程序

gw0506 发表于 2016-11-24 15:15:59

qingtong1166 发表于 2016-11-24 07:51
这是示例程序中的代码,打印出来仍然是全部的页面
Private Sub WithoutDialogToolStripMenuItem_Click(ByV ...

这个PrintDocument是.NET Framewrok的对象,所以肯定不是TextControl做了什么处理。

经过反复测试验证,最终发现了原因。有点哭笑不得啊~

要先设置PrintRange。
            myPrintDocument.PrinterSettings.PrintRange = PrintRange.SomePages;
            myPrintDocument.PrinterSettings.FromPage = 2;
            myPrintDocument.PrinterSettings.ToPage = 3;

qingtong1166 发表于 2016-11-25 09:10:02

谢谢!Print问题已解决,但是Me.TextControl1.PrintPreview(MyPrintDoc)还是不行?预览还是全部页面

gw0506 发表于 2016-11-25 18:13:58

预览就是搞不定,设置页数不起作用。

qingtong1166 发表于 2016-11-27 07:04:50

谢谢!

gw0506 发表于 2016-11-29 16:10:48

qingtong1166 发表于 2016-11-27 07:04
谢谢!

这个问题目前还在等厂商确认,有结果通知你。

gw0506 发表于 2016-11-29 18:15:33

qingtong1166 发表于 2016-11-27 07:04
谢谢!

厂商已经确认这是个Bug,建议用微软标准打印控件代替,代码如下:
textControl1.Print(myPrintDocument);
PrintPreviewDialog ppd = new PrintPreviewDialog();
ppd.Document = myPrintDocument;
ppd.ShowDialog(this)
页: [1]
查看完整版本: tx textControl设置打印范围无效!