int contentWidth=Convert.ToInt32(e.Graphics.MeasureString(contentString,contentFont).Width);
int columnHeadWidth=m_tabStyle.GridColumnStyles[i].Width ;
if (columnHeadWidth<=NotPrintMinDistance)
continue;
if (contentWidth>columnHeadWidth)//避免重叠打印算法
{
int subLength=contentString.Length-Convert.ToInt32((contentWidth-columnHeadWidth)/(contentWidth/contentString.Length));
contentString=contentString.Substring(0,subLength) ;
}
if (contentString==string.Empty )
contentString="空";
e.Graphics.DrawString(contentString ,contentFont ,foreBrush,lx,ly);
示例
Private Sub PrintGrid_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles PrintGrid.Click
PrintDocument1.Print()
End Sub
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, _
ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles _
PrintDocument1.PrintPage
Dim myPaintArgs As New PaintEventArgs(e.Graphics, New Rectangle(New _
Point(0, 0), Me.Size))
Me.InvokePaint(DataGrid1, myPaintArgs)
End Sub
编译代码
此示例需要: