解决方案 »
- 求助:我的数据库联接出现 实时错误3265 在对应所需名称或序数的集合中,未找到项目
- 新文件判断
- Exchange新邮件提取问题
- 一个关于">"和"<"的有趣问题
- VScroll背景颜色能改吗?
- adodc怎么调用不了了!!!???
- 怎样在IE工具栏上添加自己程序的图标?
- 如何在程序中给access数据库增加一张表(table),在线等待!
- 希望大家给我点意见
- 小弟在toolbar的属性设置里的图像列表一项上,我可以选定imagelist1,但是每当我按下应用时,有会变成“无”,谁能告诉我这是为什么?谢了!
- 10分帖-下次登陆CSDN的时候结
- 把指定的EXCEL工作簿里SHEET1表里的数据复制到程序同目录名为“SJ”工作簿里的“KK”表里
使用 Printer 对象可以实现与系统打印机的通讯(最初是缺省系统打印机)。用 Printers 集合可获取有关系统上所有可用打印机的信息。语法PrinterPrinters(index)index 所在处表示从 0 到 Printers.Count-1 之间的整数。说明用图形方法在 Printer 对象上绘制文本和图形。一旦 Printer 对象中含有将要打印的输出信息,可用 EndDoc 方法直接将输出信息送到应用程序的缺省打印机上。如果要打印这些信息,应该检查和可能还要修正窗体的布局。例如,如果用 PrintForm 方法打印窗体,则到页底图形图象可能被剪切,而文本则被移到下一页。Printers 集合可用来查询可用的打印机,这样就可以为应用程序指定一台缺省打印机。例如也许要找出哪些可用打印机用了指定的打印驱动程序。下面的代码查找所有的可用打印机,定位在第一个将页码方向设置为纵向的打印机,然后将其设置为 Portrait。Dim X As Printer
For Each X In Printers
If X.Orientation = vbPRORPortrait Then
'设定为系统缺省打印机。
Set Printer = X
' 终止查找打印机。
Exit For
End If
Next用 Set 语句指定 Printers 集合中的某一打印机为缺省打印机。前面的示例指定由对象变量 X 标识的打印机为应用程序的缺省打印机。注意 如果用 Printers 集合来确定某一特定打印机,如 Printers(3),则只能访问只读属性。如果想访问个别打印机的可读写属性,那么首先要使那个打印机成为应用程序的缺省打印机。
你的打印_click()使用的是printer(程序启动是的默认打印机对象的引用),在你修改默认打印机之后,你依然用printer对象,就是说你用的是之前的那个默认打印机,不是新的默认打印机,所以出现问题。
我没有多个打印机,我想你应该在修改默认打印机那里修改printer,加上set printer=...之类的东西------------
比如下面的代码修改了printer对象,并在不同的打印机上打印同样的一个圆
Private Sub Command1_Click()
Dim p As Printer
For Each p In Printers
If p.DeviceName = Combo1.Text Then
Set Printer = p
Exit Sub
End If
Next
End SubPrivate Sub Command2_Click()
Label1.Caption = Printer.DeviceName
End SubPrivate Sub Command3_Click()
Printer.Circle (0, 0), 1000
Printer.EndDoc
End SubPrivate Sub Form_Load()
Dim p As Printer
Combo1.Clear
For Each p In Printers
Combo1.AddItem p.DeviceName
Next
End Sub