📄 multiheader.cs
字号:
using System;
using System.Drawing;
namespace GoldPrinter
{
/// <summary>
/// MultiHeader,多层表头
///
/// 程序提供:周方勇;Email:flygoldfish@sina.com。
/// 请 关 注:WebMIS.Net快速开发工具,不写一行程序开发B/S架构下MIS、OA、CRM、人事管理、档案管理等数据库网页系统。简单、实用、稳定、可靠。
/// 下 载:
/// 上海奥联:WWW.AlinkSoft.COM
/// 用友华表:WWW.CellSoft.CC
///★★★★★您可以免费使用此程序,但是请您保留此说明,以维护知识产权★★★★★
/// </summary>
public class MultiHeader:Header
{
private const int CONST_MAX_ROWS = 3;
private bool _isDrawDiagonalLine; //是否打印第一列的对角线起点为0行0列,指定行数为终点
private float _DiagonalLineRows; //行数,可以是小数如1.5
#region 字段属性
/// <summary>
/// 是否打印第一列的对角线,要指定行数
/// </summary>
public bool IsDrawDiagonalLine
{
get
{
return _isDrawDiagonalLine;
}
set
{
_isDrawDiagonalLine = value;
}
}
/// <summary>
/// 对角线起点为0行0列,指定行数为终点。行数可以是小数如1.5
/// </summary>
public float DiagonalLineRows
{
get
{
return _DiagonalLineRows;
}
set
{
_DiagonalLineRows = value;
}
}
#endregion
public MultiHeader()
{
this.IsDrawAllPage = true;
mdrawGrid.AlignMent = AlignFlag.Center;
mdrawGrid.Border = GridBorderFlag.Single;
mdrawGrid.Line = GridLineFlag.Both;
_isDrawDiagonalLine= false;
_DiagonalLineRows = 2;
//粗体显示并合并
mdrawGrid.Merge = GridMergeFlag.Any;
this.Font = new Font("宋体",12,FontStyle.Bold);
mdrawGrid.RowHeight = this.Font.Height + 10;
}
protected override int SetMaxRows()
{
return CONST_MAX_ROWS;
}
public void SetMergeTextOnRowSel(int row, int startCol,int endCol, string text)
{
mdrawGrid.SetTextOnRowSel(row,startCol,endCol, text);
}
public void SetMergeTextOnColSel(int col, int startRow,int endRow, string text)
{
mdrawGrid.SetTextOnColSel(col,startRow,endRow, text);
}
public MultiHeader(int rows,int cols):this()
{
base.Initialize(rows,cols);
string mstrAlignment = "";
//所有列居中对齐
for(int i = 0 ; i < cols ; i++)
{
mstrAlignment += "C";
}
this.mdrawGrid.ColsAlignString = mstrAlignment;
}
/// <summary>
/// 画对角线,仅限于第一列
/// </summary>
protected void DrawDiagonalLine(float rows)
{
try
{
float x1,y1,x2,y2;
x1 = (float)mdrawGrid.Rectangle.X;
y1 = (float)mdrawGrid.Rectangle.Y;
x2 = x1 + mdrawGrid.ColsWidth[0];
y2 = y1 + mdrawGrid.RowHeight * this._DiagonalLineRows;
this.Graphics.SetClip(new RectangleF(x1,y1,mdrawGrid.ColsWidth[0],mdrawGrid.RowHeight * mdrawGrid.Rows));
this.Graphics.DrawLine(Pens.Black,x1,y1,x2,y2);
}
catch(Exception e)
{}
finally
{
this.Graphics.ResetClip();
}
}
public override void Draw()
{
base.Draw ();
if (_isDrawDiagonalLine)
{
DrawDiagonalLine(this._DiagonalLineRows);
}
}
public string ColsAlign
{
get
{
return this.mdrawGrid.ColsAlignString;
}
set
{
this.mdrawGrid.ColsAlignString = value;
}
}
public int[] ColsWidth
{
get
{
return this.mdrawGrid.ColsWidth;
}
set
{
this.mdrawGrid.ColsWidth = value;
}
}
}//End Class
}//End NameSpace
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -