2009-06-09 25 views

Trả lời

25
using System; 
using System.Drawing.Printing; 
using System.Windows.Forms; 
using System.Runtime.InteropServices; 

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 

     private void listAllPrinters() 
     { 
      foreach (var item in PrinterSettings.InstalledPrinters) 
      {  
       this.listBox1.Items.Add(item.ToString()); 
      } 
     } 

     private void listBox1_SelectedValueChanged(object sender, EventArgs e) 
     { 
      string pname = this.listBox1.SelectedItem.ToString(); 
      myPrinters.SetDefaultPrinter(pname); 
     } 


     public Form1() 
     { 
      InitializeComponent(); 
      listAllPrinters(); 
     } 
    } 

    public static class myPrinters 
    { 
     [DllImport("winspool.drv", CharSet = CharSet.Auto, SetLastError = true)] 
     public static extern bool SetDefaultPrinter(string Name); 

    } 
} 
0

Sau đây là cách nó có thể được thực hiện với C# .NET mà không sử dụng Win32API trong phạm vi của một ứng dụng .NET. Cách tiếp cận Win32API giữ lại máy in mặc định Sau khi ứng dụng được đóng lại.

using System.Drawing.Printing; 

namespace MyNamespace 
{ 
    public class MyPrintManager 
    { 
    public static PrinterSettings MyPrinterSettings = new PrinterSettings(); 

    public static string Default_PrinterName 
    { 
     get 
     { 
     return MyPrinterSettings.PrinterName; 
     } 
     set 
     { 
     MyPrinterSettings.DefaultPageSettings.PrinterSettings.PrinterName = value; 
     MyPrinterSettings.PrinterName = value; 
     } 
    } 
    } 
} 
Các vấn đề liên quan