C#获得本地打印机列表的办法

public class LocalPrinter

{

private static PrintDocument fPrintDocument = new PrintDocument();

/// <summary>

/// 获取本机默认打印机名称

/// </summary>

public static String DefaultPrinter

{

get { return fPrintDocument.PrinterSettings.PrinterName; }

}

/// <summary>

/// 获取本机的打印机列表。列表中的第一项就是默认打印机。

/// </summary>

public static List<String> GetLocalPrinters()

{

List<String> fPrinters = new List<string>();

fPrinters.Add(DefaultPrinter); // 默认打印机始终出现在列表的第一项

foreach (String fPrinterName in PrinterSettings.InstalledPrinters)

{

if (!fPrinters.Contains(fPrinterName))

fPrinters.Add(fPrinterName);

}

return fPrinters;

}

}

foreach (String fPrinterName in LocalPrinter.GetLocalPrinters())

{

cbxPos1.Items.Add(fPrinterName);

cxbA41.Items.Add(fPrinterName);

}

       public class LocalPrinter
        {
            private static PrintDocument fPrintDocument = new PrintDocument();
            /// <summary>   
            /// 获取本机默认打印机名称   
            /// </summary>   
            public static String DefaultPrinter
            {
                get { return fPrintDocument.PrinterSettings.PrinterName; }
            }
            /// <summary>   
            /// 获取本机的打印机列表。列表中的第一项就是默认打印机。   
            /// </summary>   
            public static List<String> GetLocalPrinters()
            {
                List<String> fPrinters = new List<string>();
                fPrinters.Add(DefaultPrinter); // 默认打印机始终出现在列表的第一项   
                foreach (String fPrinterName in PrinterSettings.InstalledPrinters)
                {
                    if (!fPrinters.Contains(fPrinterName))
                        fPrinters.Add(fPrinterName);
                }
                return fPrinters;
            }
        }



            foreach (String fPrinterName in LocalPrinter.GetLocalPrinters())
            {
                cbxPos1.Items.Add(fPrinterName);
                cxbA41.Items.Add(fPrinterName);
            }