实现如下效果:

实现方式如下:
using System;
using System.Drawing.Printing;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace PISS.View.CustomControl
{
    public partial class PrinterConfigMessBox : Form
    {
        #region 定义、构造、初始化
        [DllImport("winspool.drv")]
        //调用win api将指定名称的打印机设置为默认打印机
        public static extern bool SetDefaultPrinter(String Name);
        private static PrintDocument PrintDocument = new PrintDocument();
        public string PrinterName { get; set; }
        //获取本机默认打印机名称
        public static String DefaultPrinter()
        {
            return PrintDocument.PrinterSettings.PrinterName;
        }
        public PrinterConfigMessBox(string message)
        {
            InitializeComponent();
            this.lblMessage.Text = message;
        }
        private void PrinterConfigMessBox_Load(object sender, EventArgs e)
        {
            foreach (var item in PrinterSettings.InstalledPrinters)
            {
                this.tvList.Nodes.Add(item.ToString());
            }
            PrinterName = PrintDocument.PrinterSettings.PrinterName;
            SetDefaultSelectNode();
        }
        /// <summary>
        /// 设置默认选中项
        /// </summary>
        private void SetDefaultSelectNode()
        {
            foreach (TreeNode item in this.tvList.Nodes)
            {
                if (!item.Text.Equals(PrinterName)) continue;
                this.tvList.SelectedNode = item;
                break;
            }
        }
#endregion
        #region event
        private void btnPrint_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.OK;
            this.Close();
        }
        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.Cancel;
            this.Close();
        }
        private void tvList_AfterSelect(object sender, TreeViewEventArgs e)
        {
            PrinterName = this.tvList.SelectedNode.Text;
            PrinterConfigMessBox.SetDefaultPrinter(PrinterName);
            SetDefaultSelectNode();
        }
#endregion
    }
}
 
                    
                     
                    
                 
                    
                 

 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号