?? 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 + -