//将DataGridView控件转换为二位数组。 /* public static string[,] ToStringArrary(DataGridView dataGridView, bool includeColumnText) { string[,] arrReturn = null; int rowsCount = dataGridView.Rows.Count; int colsCount = dataGridView.Columns.Count ; //最后一行是供输入的不用读取数据。 if (rowsCount > 0) { if (dataGridView.Rows[rowsCount - 1].IsNewRow) rowsCount--;
} //包含列的标题 int k = 0; if (includeColumnText) { rowsCount++; arrReturn = new string[rowsCount, colsCount]; for (k = 0; k < colsCount; k++) { arrReturn[0, k] = dataGridView.Columns[k].HeaderText;
} k = 1; } else
arrReturn =new string [rowsCount ,colsCount ];
//读取单元格数据
for (int i=1;k<rowsCount ;i++) { for (int j=0;j<colsCount ;j++) { arrReturn [i,j]=dataGridView .Rows [i].Cells [j].Value .ToString() ;
我要打印的是WinForm
可是不知道该怎么设置PrintDocument的属性
能不能不借助第三方组件直接打印?
原理很简单,你必须准备要打印的每一页的数据,然后一页一页的在Documnet.PrintPage事件中去绘制单页,而且和MFC的最大区别的,你需要自己写一个页控制器或页控制代码.来确定当前打印的是第几页,并页通知PrintPage的事件参数是否需要打印下一页.
PrintDocument和MFC的打印的最大区别和联系是:都是在一个函数内绘制要打印的每一页的内容,区别在于MFC给出了当前页的页码(实际上,在MFC框架下你不知道系统给出的页码可能会是几,你所需要做的就是看到是几,绘第几页),但PrintDocument没有给出这个页码,这个页码需要你自己在窗口中进行控制(最简单的方法,就是开始打印时,置0,然后每每绘一页,给它+1,但你必须知道总页数,用来决定是否需要设置HasMorePage的值为true,然后在PrintPage检查窗口的这个页码变量是几,然后绘第几页的内容).
/* public static string[,] ToStringArrary(DataGridView dataGridView, bool includeColumnText)
{
string[,] arrReturn = null;
int rowsCount = dataGridView.Rows.Count;
int colsCount = dataGridView.Columns.Count ; //最后一行是供输入的不用读取数据。
if (rowsCount > 0)
{
if (dataGridView.Rows[rowsCount - 1].IsNewRow)
rowsCount--;
}
//包含列的标题 int k = 0;
if (includeColumnText)
{
rowsCount++;
arrReturn = new string[rowsCount, colsCount]; for (k = 0; k < colsCount; k++)
{
arrReturn[0, k] = dataGridView.Columns[k].HeaderText;
}
k = 1;
}
else
arrReturn =new string [rowsCount ,colsCount ];
//读取单元格数据
for (int i=1;k<rowsCount ;i++)
{
for (int j=0;j<colsCount ;j++)
{
arrReturn [i,j]=dataGridView .Rows [i].Cells [j].Value .ToString() ;
}
}
return arrReturn ;
}
你可以参考我下面说的方法:
1。水晶报表
2。C1ReportDesigner设计。然后在NET中引用。
3。用NET自带的Report实现。
如果感兴趣,我们可以共同研究。
WFsoft.wfLibrary.wfPrint v1.0
http://www.wfsoft.com/middleware_info.asp?id=1