解决方案 »
- 求助:C#中怎么把固定格式的.txt转换成Excel
- 关键字static与面向对象的概念有什么相关?
- listView1和数据库的问题
- 一个关于倒计时的问题 急!!~~~~~~~
- 如何取得Excel中一个单元格的值
- 怎样实现:禁止改变DataGrid行的高度!
- 请问文本框的字号和字体能不能像Word选定一部分作改变啊
- 我运行程序的时候,为什么总是输出这些:线程 '<无名称>' (0xea0) 已退出,返回值为 0 (0x0)。
- C#如何实现把图像缩小10倍后再放大10倍而图像质量不变(即不发虚)
- VS 运行程序时,界面卡死,怎么解决呢?求围观,求帮忙,求吐槽
- 未来哪技术项会成为主流.?
- VS2005中如何设置主题?
用户还要求有一个更换打印机的按钮,可以方便其更换打印机,从不同的打印机输出。
最后,还要保证每次用户登录上来后不用重复的调整纸型,只要保持住EPSON就可以。界面上有两个按钮,一个是页面设置,打开PageSetupDialog,还有一个更换打印机,打开PrinterSetupDialog,其他略。
我申请了一个叫PrinterSetting的Setting存为用户设置,我用一个_pageSettings类型为 PageSettings的本地变量保存所有的页面设置:private PageSettings _pageSettings;
//初始化略
点击页面设置按钮的代码如下: private void toolStripButton2_Click(object sender, EventArgs e)
{
//前面已经取出用户设置存在_pageSettings里
pageSetupDialog1.PageSettings = _pageSettings;
if (pageSetupDialog1.ShowDialog(this) == DialogResult.OK)
{
printPreviewControl1.InvalidatePreview();
//为了让_pageSetting不作为一个指向某块地址的变量,它本身和它的关键属性我基本都用new声明的
_pageSettings.PaperSize = new PaperSize(pageSetupDialog1.PageSettings.PaperSize.PaperName,
pageSetupDialog1.PageSettings.PaperSize.Width, pageSetupDialog1.PageSettings.PaperSize.Height);
_pageSettings.PaperSize.PaperName = "EPSON";
_pageSettings.Margins = new Margins(pageSetupDialog1.PageSettings.Margins.Left,
pageSetupDialog1.PageSettings.Margins.Right, pageSetupDialog1.PageSettings.Margins.Top,
pageSetupDialog1.PageSettings.Margins.Bottom);
//最后保存设置
Properties.Settings.Default.PrinterSettings = _pageSettings;
Properties.Settings.Default.Save();
}
}
点击更换打印机按钮的代码如下: private void toolStripButton2_Click_1(object sender, EventArgs e)
{
//从设置里读取打印机名称
printDialog1.PrinterSettings.PrinterName = Properties.Settings.Default.CasePrinterName;
if (this.printDialog1.ShowDialog(this) == DialogResult.OK)
{
this.printDocument1.PrinterSettings.PrinterName = this.printDialog1.PrinterSettings.PrinterName;
Properties.Settings.Default.CasePrinterName = this.printDialog1.PrinterSettings.
}
//如果更换打印机,则显示的是custom,而不是EPSON
MessageBox.Show(_pageSettings.PaperSize.PaperName);
}
问题是我自己声明的_pageSettings变量,在打印机更改时发生了变化,而这期间,我没对其做过任何写的操作,怎么才能让它保持 EPSON不变呢,又不想硬编码
期待达人给予帮助,多谢
小弟不才,问题如若没陈述清楚,还麻烦您提醒一下,我好做些补充,再次致谢
我感觉不是在这个地方改变的。
还有,你的 _pageSettings是在什么地方初始话的。
谢谢你的回答至于名称改变的问题,已经找到答案了,我把_pageSettings的引用给了DefaultPageSetting导致更换打印机的时候,系统把我的本地变量给更改了
现在的问题是点击页面设置按钮的这句pageSetupDialog1.PageSettings = _pageSettings;
起不到预计的效果,比如我这句执行的时候我的_pageSettings还是EPSON呢,但是页面设置对话框里显示的是Letter而不是EPSON,很郁闷