个人感觉Another DataGridView Printer的DGVPrinter.cs还是很好用的.
在使用中发现了PrintRange,其功能就是打印选中的datagridview部分,而不是全部。
使用时首先声明:
1
printer.PrintSettings.PrintRange = PrintRange.Selection;然后
1
MyDataGridView.SelectionMode = DataGridViewSelectionMode.CellSelect;2
bool flag=false;// 加一个判断标志,不然没有选择任何内容时DGVPrinter.cs里会报错,可能是bug3
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
else15
c.Selected = false;16
}17
}18
else19

{20
foreach (DataGridViewCell c in r.Cells)21
c.Selected = false;22
}23

24
}25
return flag; 最后
private void btnPrint_Click(object sender, EventArgs e)
{
if (printSetting())
printer.PrintNoDisplay(MyDataGridView);
else
{
MessageBox.Show("请选择要打印的数据!");
}
}