2011-01-19 6 views
1

레이블을 인쇄하는 프로그램이있어서 사용자가 프린터 설정을 저장/기억하도록 허용해야합니다. 그래서 나는이 코드를 가지고 :Windows Forms 프로그램에서 인쇄 설정을 저장하는 방법은 무엇입니까?

private void printerToolStripButton_Click(object sender, EventArgs e) 
{ 
    PrintDialog dialog = new PrintDialog(); 
    dialog.ShowDialog(); 
} 

사용자는 (용지 크기, 방향 등)가 '확인'을 클릭 한 다음 PrintDialog에 'OK'를 클릭 일부 변경을 할 프린터를 선택하고 등록 버튼을 클릭합니다.

내 문제는 이러한 변경은 기억되지 않는다는 것입니다 ... 나는 다시 버튼을 클릭하거나 사라 응용 프로그램을 ... 다시 시작하면

사람이 응용 프로그램의 범위를 유지하는 방법을 알고 있나요? 또는 응용 프로그램 범위가 불가능하면 시스템에 저장하는 방법 (제어판 -> 프린터 -> 마우스 오른쪽 버튼으로 프린터 -> 환경 설정을 선택하면됩니다)을 저장하는 방법이 있습니까?

+0

, 당신은 아직 내 soution을 시도했다) 그런데, 직렬화는 인터페이스 상속을 사용하는 경우 멋진 인터페이스를 구동? –

+0

안녕하세요! 아직은 아니지만 이번 주에 시도해 보겠습니다 :) –

답변

2

유우는 interface-driven serialization을 사용할 수 있습니다. ;)

내 xml 직렬화 속성을 사용하여 인터페이스 기반 직렬화를 확장 할 수 있습니다. 는 것입니다 방법

using System; 
using System.IO; 
using System.Windows.Forms; 

// download at [http://xmlserialization.codeplex.com/] 
using System.Xml.Serialization; 
namespace test 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     [XmlRootSerializer("PrinterSettings")] 
     public interface IPrinterSettings 
     { 
      bool PrintToFile { get; set; } 
     } 

     private static readonly string PrinterConfigurationFullName = Path.Combine(Application.StartupPath, "PrinterSettings.xml"); 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      if (File.Exists(PrinterConfigurationFullName)) 
      { 
       XmlObjectSerializer.Load<IPrinterSettings>(File.ReadAllText(PrinterConfigurationFullName), printDialog1); 
      } 
     } 

     private void Form1_FormClosed(object sender, FormClosedEventArgs e) 
     { 
      File.WriteAllText(PrinterConfigurationFullName, XmlObjectSerializer.Save<IPrinterSettings>(printDialog1)); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      if (printDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) 
      { 
       // do required stuff here... 
      } 
     } 
    } 
} 
+0

알아요,하지만 응용 프로그램을 다시 시작하는 사이에이 설정을 기억해야합니다. 그것들을 프린터 시스템 설정에 저장하면 될 수 있습니다. 어떻게 해야할지 모르겠습니다. –

+0

좋아, 대답을 적절하게 편집 할 것입니다. –

+0

좋아, 이제 시작되었습니다. 준비;) 최신 변경 세트를 다운로드하십시오. [http://xmlserialization.codeplex.com/SourceControl/changeset/changes/64484] –

관련 문제