• C#Winfrom系统打印机调用/设置默认打印机


    实现如下效果:

    实现方式如下:

    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

    }
    }

     

  • 相关阅读:
    MyCLI :一个支持自动补全和语法高亮的 MySQL/MariaDB 客户端
    pathlib:优雅的路径处理库
    MySQL索引连环18问
    Mysql 百万级数据迁移实战笔记
    强大的Json解析工具 Jsonpath 实战教程
    JavaScript 中的 Var,Let 和 Const 有什么区别
    【前端安全】从需求分析开始,详解前端加密与验签实践
    vue3开发企业级生鲜系统项目
    mysql随笔
    shiro相关Filter
  • 原文地址:https://www.cnblogs.com/YYkun/p/5662902.html
Copyright © 2020-2023  润新知