c#.net 实现了下拉列表显示系统安装的所有打印机,并且把默认的打印机作为下拉列表的默认项。
PrinterSettings 类:列举系统中安装的所有打印机名称。
PrintDocument 类:获取默认的打印机名称。
具体程序如下:
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 ss in PrinterSettings.InstalledPrinters)
{
/// 在列表框中列出所有的打印机,
printerList.Items.Add(ss);
if (ss == strDefaultPrinter) // 把默认打印机设为缺省值
{
printerList.SelectedIndex = printerList.Items.IndexOf(ss);
}
}
///
/// 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()
{
label1 = new System.Windows.Forms.Label();
printerList = new System.Windows.Forms.ComboBox();
SuspendLayout();
//
label1.Location = new System.Drawing.Point( 8 , 24 );
label1.Name = " label1 " ;
label1.Size = new System.Drawing.Size( 72 , 16 );
label1.TabIndex = 0 ;
label1.Text = " 选择打印机: " ;
/// /
printerList.Location = new System.Drawing.Point( 88 , 22 );
printerList.Name = " printerList " ;
printerList.Size = new System.Drawing.Size( 192 , 21 );
printerList.TabIndex = 1 ;
printerList.Text = " 当前系统未装打印机 " ;
AutoScaleBaseSize = new System.Drawing.Size( 5 , 13 );
ClientSize = new System.Drawing.Size( 288 , 61 );
Controls.AddRange( new System.Windows.Forms.Control[]{
printerList,
label1});
Name = " Form1 " ;
Text = " 打印机列表 " ;
ResumeLayout( false );
}
#endregion
///
/// 应用程序的主入口点。
///
[STAThread]
static void Main()
{
Application.Run( new Form1());
}
}
}
}