⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multiheader.cs

📁 用C#编写的一个新的打印程序
💻 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 + -