以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]打印时如何避免按键干扰?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=50253)

--  作者:michaelyu
--  发布时间:2014/5/3 10:48:00
--  [求助]打印时如何避免按键干扰?
我设计了一个标签打印的窗口,由另一个窗口进行调用,需要同时打印两张标签,所以需要时间较长。
但是在标签打印过程中如果不小心多按一次回车键的话,程序运行会出现“正在生成第一页”,这样就只能打印一张标签,程序可以继续运行。
但屏幕上一直存在这个提示。
好像是按键打扰到打印进程了。该窗口的KEYDOWN事件中加了e.cancel=true 也不起作用。
不知如何解决?请指教。
注: 我们用的是条码打印机,没有采用EXCEL中的模板。采用的是将控件置于GROUPBOX中。一次打印两大张标签。(102mm*152mm)

还有,有设置打印张数的参数吗?这样可以一次计算就输出两张同样的标签。否则,需要算两次?
[此贴子已经被作者于2014-5-3 21:23:33编辑过]

--  作者:有点甜
--  发布时间:2014/5/4 12:40:00
--  

 有打印参数的设置,参考

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=49637&skin=0

 


--  作者:michaelyu
--  发布时间:2014/5/4 13:18:00
--  

看来这个参数还是蛮复杂的嘛!难道就没有简单的参数设置打印份数?

 

还有,这个对于来说,不是主要问题,偷懒的话,循环两次就行了。

 

关键是在调用这个这个窗口打印时(我定义DOC的是BROUPBOX),多按一次回车的话,打印受到干扰,出现了提示“正在生成第一页”。

 

这个问题如何解决呢?能否告知有什么事件中可以设定在执行这个窗口的时候按键时无效的呢?

[此贴子已经被作者于2014-5-4 13:19:00编辑过]

--  作者:有点甜
--  发布时间:2014/5/4 14:26:00
--  
 无法理解3楼的意思,做一个例子说明问题。
--  作者:michaelyu
--  发布时间:2014/5/6 23:33:00
--  

逛逛同学的意见是正确的!

我在全局代码中加入了如下代码

 

Public Sub Print(ByVal printerSettings As System.Drawing.Printing.PrinterSettings)

End Sub

在窗口中加入了如下代码

Dim ps As new System.Drawing.Printing.PrinterSettings

ps.PrinterName = “打印机名”  ’设置打印机名
ps.Copies = 2   ‘设置份数

doc.Print(ps)     ‘打印

 

现在打印没有任何问题了!

 

我原先的问题在于:

 

    用GROUPBOX 容器将所有控件安置在内,但是在打印时字符全部落底并且靠右。所以采用了笨办法将每个控件的LEFT以及TOP属性强行减值成负值,这样标签可以正常打印。

 

    但是不知是否由于狐表中打印程序的问题,在打印过程中,如果我按了回车键就会出现我前面提出的问题“正在生成第一页”的报错信息。

 

现在这个问题已经不存在了!只要GROUPBOX中控件的位置调好,打印很正常。