PrinterSelector.cs
1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Drawing;
5 using System.Data;
6 using System.Linq;
7 using System.Text;
8 using System.Windows.Forms;
9 using System.Drawing.Printing;
10 using sage.ew.db;
11 using sage.ew.images.Properties;
12 using sage.ew.objetos;
13 using sage.ew.formul.Forms;
14 
15 namespace sage.ew.ewbase
16 {
20  public partial class PrinterSelector
21  : UserControl
22  {
26  public PrinterSelector()
27  {
28  InitializeComponent();
29 
30  ShowButtonConfigurations = false;
31  }
32 
36  public Boolean ShowButtonConfigurations
37  {
38  get
39  {
40  return btPrintersConfiguration.Visible;
41  }
42  set
43  {
44  btPrintersConfiguration.Visible = value;
45  }
46  }
47 
51  [Browsable(false)]
52  public String Printer
53  {
54  get
55  {
56  return Convert.ToString(ewcbImpresoras.SelectedItem);
57  }
58  set
59  {
60  _SetPrinter(value);
61  }
62  }
63 
64  private Boolean _SetPrinter(String tcPrinter)
65  {
66  int lnIndex = 0;
67  Boolean lbOk = false;
68 
69  foreach (string lcImpres in ewcbImpresoras.Items)
70  {
71  if (lcImpres.ToLower().Trim() == tcPrinter.ToLower().Trim())
72  {
73  ewcbImpresoras.SelectedIndex = lnIndex;
74  lbOk = true;
75  break;
76  }
77  lnIndex++;
78  }
79 
80  return lbOk;
81  }
82 
86  [Browsable(false)]
87  public void SetDefautPrinter(List<String> loPrinters)
88  {
89  foreach(String lcPrinter in loPrinters)
90  {
91  if (_SetPrinter(lcPrinter)) break;
92  }
93  }
94 
98  [Browsable(false)]
99  public Int32 PrintersCount
100  {
101  get
102  {
103  return ewcbImpresoras.Items.Count;
104  }
105  }
106 
107 
108  private void PrinterSelector_Load(object sender, EventArgs e)
109  {
110  if (!DesignMode)
111  {
112  //Combo impresora
113  try
114  {
115  int lnIndex = 0;
116  PrinterSettings loSettings = new PrinterSettings();
117  String lcDefaultPrinter = loSettings.PrinterName;
118 
119  foreach (String lcImpresora in PrinterSettings.InstalledPrinters)
120  {
121  //Añado tantas filas como impresoras tengo
122  this.ewcbImpresoras.Items.Add(lcImpresora);
123  //Seleccionamos la que tiene windows por defecto
124  if (lcImpresora.ToLower().Trim() == lcDefaultPrinter.ToLower().Trim()) this.ewcbImpresoras.SelectedIndex = lnIndex;
125  lnIndex++;
126  }
127  }
128  catch (Exception loEx)
129  {
130  //TODO : Que fem amb els errors derivats? Per exemple quan esta el pool de la impresora parat
131  DB.Registrar_Error(loEx);
132  }
133  }
134  }
135 
136  }
137 }
User control de selcción de impresora y edición de confifuracions
void SetDefautPrinter(List< String > loPrinters)
Impresora seleccionada