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
}
}
C#Winfrom系统打印机调用/设置默认打印机的更多相关文章
- C#设置默认打印机
项目中,需要选择打印机,切换打印机.demo如下(wpf应用程序): Xaml: <Window x:Class="PrintersApp.MainWindow" xmlns ...
- windows设置默认打印机
实现这个功能需要使用windows api [DllImport("winspool.drv")] public static extern bool SetDefaultPrin ...
- Winform 判断打印机是否可用,实现设置默认打印机功能
Winform 判断打印机是否可用,实现设置默认打印机功能 http://www.cnblogs.com/zfanlong1314/p/3878563.html
- LODOP指定window默认打印机和临时默认打印机
通过以下语句,可指定windows默认打印机LODOP.SET_PRINT_MODE("WINDOW_DEFPRINTER",某打印机名或序号);这种默认打印机是指的windows ...
- VB6 获取和设置默认打印机
Private Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA&quo ...
- C#获取本地打印机列表,并将指定打印机设置为默认打印机
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.W ...
- 利用ActiveX实现web页面设置本地默认打印机、纸张大小
通常web技术无法设置本地计算机的默认打印机,包括用代码设置纸张大小,如果业务系统中真遇到这种需求,只能通过其它辅助手段(比如ActiveX)实现.下面这段代码,出自网上被广泛使用的"泥人张 ...
- PC设置局域网打印机
打印机采用局域网网络连接方式,下面以Windows系统为例说明如何添加此打印机. 将电脑接入局域网 在“控制面板”中打开“设备与打印机”,点击“添加打印机” 在弹出列表中,会自动出现打印机型号,选中它 ...
- cad.net cad启动慢? cad2008启动慢? cad启动延迟? cad卡住? cad98%卡? 默认打印机!!
默认打印机是不是联网打印机,如果cad找不到这个打印机将会很慢才打开cad的界面(它真的不是卡死了,而是找不到...) 奇妙的是桌子至今都没有利用新建线程的方式来控制这个打印机等待,而是直接在主程序上 ...
随机推荐
- hdu 5093 Battle ships
二分图匹配 #include<cstdio> #include<cstring> #include<iostream> #include<cmath> ...
- C++ struct 定义及初始化
1 定义: struct Book{ unsigned int bookNo; string name; }; 2 初始化 struct的初始化分为三种:逐一赋值,顺序赋值,乱序赋值 // 逐一 ...
- Centos搭建openvpn+mysql数据库认证
服务器环境说明 1.系统版本 CentOS release 5.10 (Final) 64bits 2.软件版本 openvpn-2.3.6-1.el5 lzo-2.02-2.el5.1 lzo-d ...
- 一个textview实现文字在图片上面的效果
类似于这样的,其实很简单,可是以前用的是imageview+textview.布局实现多写了好多代码.又不能在图片加文字,显得没技术含量. xml代码如下: <TextView android: ...
- Jlink V7在MDK下使用Cortex-M3-Jlink模式开发STM32的说明
Jlink V7在MDK下使用Cortex-M3-Jlink模式开发STM32的说明 开发环境:STM32F103RB(128K Flash 20K RAM)+MDK3.50+JLINK V7(v ...
- API中FileReader 接口事件
FileReader 接口包含了一套完整的事件模型,用于捕获读取文件时的状态onabort 中断onerror 出错onloadstart 开始onprogress ...
- linux下重启mysql php nginx
# /etc/init.d/mysql restart # /etc/init.d/php-fpm restart # /etc/init.d/nginx restart
- html4.0.1,h5,xhml,文档声明区别
<!DOCTYPE> 声明不是 HTML 标签:它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令. 提示:请始终向 HTML 文档添加 <!DOCTYPE> ...
- Java Memory Model
http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html http://www.ibm.com/developerworks/libr ...
- Top Things to Consider When Troubleshooting Complex Application Issues
http://blogs.msdn.com/b/debuggingtoolbox/archive/2011/10/03/top-things-to-consider-when-troubleshoot ...