个人感觉Another DataGridView Printer的DGVPrinter.cs还是很好用的.
在使用中发现了PrintRange,其功能就是打印选中的datagridview部分,而不是全部。
使用时首先声明:
Code
1printer.PrintSettings.PrintRange = PrintRange.Selection;
1printer.PrintSettings.PrintRange = PrintRange.Selection;
然后
Code
1 MyDataGridView.SelectionMode = DataGridViewSelectionMode.CellSelect;
2 bool flag=false;// 加一个判断标志,不然没有选择任何内容时DGVPrinter.cs里会报错,可能是bug
3 foreach (DataGridViewRow r in MyDataGridView.Rows)
4 {
5 if (r.Cells[0].EditedFormattedValue.ToString() == "True")
6 {
7 foreach (DataGridViewCell c in r.Cells)
8 {
9 if (c.ColumnIndex != 0)
10 {
11 c.Selected = true;
12 flag = true;
13 }
14 else
15 c.Selected = false;
16 }
17 }
18 else
19 {
20 foreach (DataGridViewCell c in r.Cells)
21 c.Selected = false;
22 }
23
24 }
25 return flag;
1 MyDataGridView.SelectionMode = DataGridViewSelectionMode.CellSelect;
2 bool flag=false;// 加一个判断标志,不然没有选择任何内容时DGVPrinter.cs里会报错,可能是bug
3 foreach (DataGridViewRow r in MyDataGridView.Rows)
4 {
5 if (r.Cells[0].EditedFormattedValue.ToString() == "True")
6 {
7 foreach (DataGridViewCell c in r.Cells)
8 {
9 if (c.ColumnIndex != 0)
10 {
11 c.Selected = true;
12 flag = true;
13 }
14 else
15 c.Selected = false;
16 }
17 }
18 else
19 {
20 foreach (DataGridViewCell c in r.Cells)
21 c.Selected = false;
22 }
23
24 }
25 return flag;
最后
Code
private void btnPrint_Click(object sender, EventArgs e)
{
if (printSetting())
printer.PrintNoDisplay(MyDataGridView);
else
{
MessageBox.Show("请选择要打印的数据!");
}
}
private void btnPrint_Click(object sender, EventArgs e)
{
if (printSetting())
printer.PrintNoDisplay(MyDataGridView);
else
{
MessageBox.Show("请选择要打印的数据!");
}
}