c# - change MSChart Background for printing -


i have put in code change mscharting area colour when printing.

chart.chartareas[o].backcolor = system.drawing.color.white; chart.printing.printpreview(); 

my quesiton is, how can handle color change oringinal color, eitehr after user has selected print, or close form printpreview dialog,, or if click on dialogs "x".

in fact if use printdialog instead, how set background normal once printing has been completed or canceled?

little late hope helps someone.

to mschart print i'am using printdocument events. beginprint event setting colors printing, printpage event print , endprint event setting colors before print.

sample code:

 public graphfrm()   {      initializecomponent();       //new printdocument object reset default 1      chart.printing.printdocument = new system.drawing.printing.printdocument();      //set events      chart.printing.printdocument.printpage += new system.drawing.printing.printpageeventhandler(printdocument_printpage);      chart.printing.printdocument.beginprint +=new system.drawing.printing.printeventhandler(printdocument_beginprint);      chart.printing.printdocument.endprint += new system.drawing.printing.printeventhandler(printdocument_endprint);      //default print setting margins , landscape      chart.printing.printdocument.defaultpagesettings.margins.bottom = 50;      chart.printing.printdocument.defaultpagesettings.margins.top = 50;      chart.printing.printdocument.defaultpagesettings.margins.left = 50;      chart.printing.printdocument.defaultpagesettings.margins.right = 50;      chart.printing.printdocument.defaultpagesettings.landscape = true;      chart.printing.printdocument.defaultpagesettings.color = true;       ...   }    public void print()   {      //print method show print dialog      chart.printing.print(true);   }    void printdocument_beginprint(object sender, system.drawing.printing.printeventargs e)   {      //set print color      printchartcolorset();   }    void printdocument_endprint(object sender, system.drawing.printing.printeventargs e)   {      //restore colors      printchartcolorrestoredefault();   }    void printdocument_printpage(object sender, system.drawing.printing.printpageeventargs e)   {      //print chart rectangle defined margins      rectangle chartposition = new rectangle(e.marginbounds.x, e.marginbounds.y, e.marginbounds.width, e.marginbounds.height);       chart.printing.printpaint(e.graphics, chartposition);   }    color backcolor, borderlinecolor, cabackcolor, cabordercolor, axcolor, lebackcolor, leforecolor;    void printchartcolorset()   {      backcolor = chart.backcolor;      chart.backcolor = color.white;       borderlinecolor = chart.borderlinecolor;      chart.borderlinecolor = color.white;       cabackcolor = chart.chartareas[0].backcolor;      chart.chartareas[0].backcolor = color.white;       cabordercolor = chart.chartareas[0].bordercolor;      chart.chartareas[0].bordercolor = color.black;       axcolor = chart.chartareas[0].axes[0].linecolor;       foreach(axis in chart.chartareas[0].axes)      {         a.linecolor = color.black;         a.titleforecolor = color.black;         a.majorgrid.linecolor = color.black;         a.majortickmark.linecolor = color.black;         a.minorgrid.linecolor = color.black;         a.minortickmark.linecolor = color.black;         a.labelstyle.forecolor = color.black;      }       lebackcolor = chart.legends[0].backcolor;      chart.legends[0].backcolor = color.white;       leforecolor = chart.legends[0].forecolor;      chart.legends[0].forecolor = color.black;   }    void printchartcolorrestoredefault()   {      chart.backcolor = backcolor;      chart.borderlinecolor = borderlinecolor;      chart.chartareas[0].backcolor = cabackcolor;      chart.chartareas[0].bordercolor = cabordercolor;       foreach(axis in chart.chartareas[0].axes)      {         a.linecolor = axcolor;         a.titleforecolor = axcolor;         a.majorgrid.linecolor = axcolor;         a.majortickmark.linecolor = axcolor;         a.minorgrid.linecolor = axcolor;         a.minortickmark.linecolor = axcolor;         a.labelstyle.forecolor = axcolor;      }       chart.legends[0].backcolor = lebackcolor;      chart.legends[0].forecolor = leforecolor;   } 

Comments

Popular posts from this blog

php - What is the difference between $_SERVER['PATH_INFO'] and $_SERVER['ORIG_PATH_INFO']? -

fortran - Function return type mismatch -

queue - mq_receive: message too long -