C#枚举系统安装的所有打印机
发布日期:2021-06-30 19:10:47
浏览次数:2
分类:技术文章
本文共 4328 字,大约阅读时间需要 14 分钟。
在下面的程序中我们将把系统中所安装的打印机用列表框列出来,同时为默认打印机设置缺省值。 在下面的程序中我们用到了两个主要的类,把所有的打印机列表出来用到了PrinterSettings 类,获取系统默认打印机用到了PrintDocument 类,下面我们就动手实践一下吧。 先新建一个windows form的工程,然后加入一个lable和一个comBox,就行啦,关键在下面啦,我们如何获得默认打印机,就得用下面的语句。 PrintDocument prtdoc = new PrintDocument(); string strDefaultPrinter = prtdoc.PrinterSettings.PrinterName;//获取默认的打印机名 有了默认的打印机,我们再把所有的打印机列出来。 PrinterSettings类有一个InstalledPrinters的属性,不知是做什么的吧,查MSDN如下解释: PrinterSettings.InstalledPrinters 获取安装在计算机上所有打印机的名称。 在C#中如下定义: [C#] [Serializable] [ComVisible(false)] public static PrinterSettings.StringCollection InstalledPrinters {get;} 属性值 PrinterSettings.StringCollection,它表示安装在计算机上所有打印机的名称。 异常 异常类型 条件 Win32Exception 未能枚举可用的打印机 备注 可以使用已安装的打印机名称的集合向用户提供要打印到的打印机选择。 下面的示例用已安装的打印机填充 comboInstalledPrinters 组合框,并且还在选择更改时使用 PrinterName 属性设置用于打印的打印机。PopulateInstalledPrintersCombo 例程在窗体初始化时被调用。该示例假定存在名为 printDoc 的 PrintDocument 变量,并且存在特定的组合框。 [C#] //下面括号内的自己翻译添加进去的 private void PopulateInstalledPrintersCombo() { // Add list of installed printers found to the combo box.(将系统中所有的打机加入列表框) // The pkInstalledPrinters string will be used to provide the display string.(列表框中显示的字串由pkInstalledPrinters提供) foreach(String pkInstalledPrinters in PrinterSettings.InstalledPrinters) { comboInstalledPrinters.Items.Add(pkInstalledPrinters); } } private void comboInstalledPrinters_SelectionChanged(object sender, System.EventArgs e) { // Set the printer to a printer in the combo box when the selection changes.(当列表框改变时设置选择的打印机) if (comboInstalledPrinters.SelectedIndex != -1) { // The combo box's Text property returns the selected item's text, which is the printer name.(将选择的打印机名在列表框中显示) printDoc.PrinterSettings.PrinterName= comboInstalledPrinters.Text; } } 看了MSDN的说明,懂多了吧,下面是我写练习完整代码. //程序说明:将系统中的所有打印机在列表框中列出 //程序变量: PrintDocument prtdoc、string strDefaultPrinter //编写人:蚕蛹(sillnet@163.net) //日期:2003-03-20 using System; using System.Drawing; using System.Drawing.Printing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; namespace PrinterList { /// /// Form1 的摘要说明。 /// public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.Label label1; private System.Windows.Forms.ComboBox printerList; /// /// 必需的设计器变量。 /// private System.ComponentModel.Container components = null; public Form1() { // // Windows 窗体设计器支持所必需的 // InitializeComponent(); PrintDocument prtdoc = new PrintDocument(); string strDefaultPrinter = prtdoc.PrinterSettings.PrinterName;//获取默认的打印机名 foreach(String strPrinter in PrinterSettings.InstalledPrinters) //在列表框中列出所有的打印机, { printerList.Items.Add(strPrinter); if (strPrinter == strDefaultPrinter)//把默认打印机设为缺省值 { printerList.SelectedIndex = printerList.Items.IndexOf(strPrinter); } } // // TODO: 在 InitializeComponent 调用后添加任何构造函数代码 // } /// /// 清理所有正在使用的资源。 /// protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Windows Form Designer generated code /// /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// private void InitializeComponent() { this.label1 = new System.Windows.Forms.Label(); this.printerList = new System.Windows.Forms.ComboBox(); this.SuspendLayout(); // // label1 // this.label1.Location = new System.Drawing.Point(8, 24); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(72, 16); this.label1.TabIndex = 0; this.label1.Text = "选择打印机:"; // // printerList // this.printerList.Location = new System.Drawing.Point(88, 22); this.printerList.Name = "printerList"; this.printerList.Size = new System.Drawing.Size(192, 21); this.printerList.TabIndex = 1; this.printerList.Text = "当前系统未装打印机"; // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(288, 61); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.printerList, this.label1}); this.Name = "Form1"; this.Text = "打印机列表"; this.ResumeLayout(false); } #endregion /// /// 应用程序的主入口点。 /// [STAThread] static void Main() { Application.Run(new Form1()); } } }转载地址:https://linuxstyle.blog.csdn.net/article/details/1539779 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年05月01日 05时10分24秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
github.io网页无法打开(连接不是私密连接)
2019-04-30
git submodule
2019-04-30
linux中source、sh、bash、./有什么区别
2019-04-30
vscode git
2019-04-30
基于MATLAB的二进制数字调制与解调信号的仿真——2FSK
2019-04-30
基于MATLAB的二进制数字调制与解调信号的仿真——2PSK
2019-04-30
基于MATLAB的模拟调制信号与解调的仿真——AM
2019-04-30
基于MATLAB的模拟调制信号与解调的仿真——DSB
2019-04-30
基于MATLAB的模拟调制信号与解调的仿真——SSB
2019-04-30
pyc文件
2019-04-30
操作系统实验之生产者和消费者程序
2019-04-30
操作系统实验之猴子过桥问题的模拟程序
2019-04-30
POJ - 3067 Japan (树状数组 思维)
2019-04-30
POJ - 2352 Stars (树状数组 入门题)
2019-04-30
HDU - 1166 敌兵布阵 (树状数组模板题/线段树模板题)
2019-04-30
CodeForces - 761C Dasha and Password (思维 暴力)
2019-04-30
POJ - 2481 Cows (树状数组 入门题)
2019-04-30
ACM-ICPC 2018 焦作赛区网络预赛 I. Save the Room
2019-04-30