为什么每次执行这段代码,弹出的页面设置对话框的页边距值都不一样?PageSetupDialog pageSetupDialog = new PageSetupDialog();
pageSetupDialog.Document = printDocument1;
pageSetupDialog.ShowDialog();先谢谢了,等待中...

解决方案 »

  1.   

    ShowDialog的后面括号里,应该可以放参数吧,自己查查msdn,应该可以的
      

  2.   

    // “页面设置”按钮事件处理程序, 仅适用于.NET 1.1
    void PageSetupClick(object o, EventArgs e)
    {
      if (System.Globalization.RegionInfo.CurrentRegion.IsMetric)
      {
        // .NET运行时版本为1.1,当前线程所使用的区域选项的度量衡系统为公制时,
        // 显示在页边距对话框中的是当前页边距以“十分之一英寸”为单位的数值,
        // 按下“确定”时,却把屏幕上的页边距数值按“毫米”为单位对页面进行设定。
        // 以下代码就是为了纠正这个BUG的。
        Margins mg = prndoc.DefaultPageSettings.Margins;
        prndoc.DefaultPageSettings.Margins = PrinterUnitConvert.Convert
        (mg, PrinterUnit.Display, PrinterUnit.TenthsOfAMillimeter);
        DialogResult dlgResult = pageSetupDlg.ShowDialog();
        if (dlgResult == DialogResult.Cancel)
        {
          prndoc.DefaultPageSettings.Margins = mg;
        }
      }
      else
      {
        pageSetupDlg.ShowDialog();
      }
    }// .NET 2.0 已经改正了这个问题, 不需修正.