📄 outer.cs
字号:
using System;
using System.Drawing;
namespace GoldPrinter
{
/// <summary>
/// Outer,网格体之外的对象,通常用于表头表底做表体的附加信息
///
/// 程序提供:周方勇;Email:flygoldfish@sina.com。
/// 请 关 注:WebMIS.Net快速开发工具,不写一行程序开发B/S架构下MIS、OA、CRM、人事管理、档案管理等数据库网页系统。简单、实用、稳定、可靠。
/// 下 载:
/// 上海奥联:WWW.AlinkSoft.COM
/// 用友华表:WWW.CellSoft.CC
///★★★★★您可以免费使用此程序,但是请您保留此说明,以维护知识产权★★★★★
/// </summary>
public class Outer:Printer
{
//核心为网格对象,不对最终用户公开
protected DrawGrid mdrawGrid;
//标识是否初始了行列数,只在两个地方修改,Initialize(int rows, int cols)或SetText(char rowSplit,char colSplit,string text)。
//只有初始了,才能执行Draw()操作。
protected bool mblnHadInitialized;
public Outer()
{
mblnHadInitialized = false;
this.IsDrawAllPage = false;
mdrawGrid = new DrawGrid();
mdrawGrid.AlignMent = AlignFlag.Left;
mdrawGrid.ColsAlignString = "";
mdrawGrid.Border = GridBorderFlag.None;
mdrawGrid.Line = GridLineFlag.None;
mdrawGrid.Merge = GridMergeFlag.None;
this.Font = new Font("宋体",11);
mdrawGrid.RowHeight = this.Font.Height;
mdrawGrid.Initialize(0,0);
}
public object DataSource
{
get
{
return this.mdrawGrid.DataSource;
}
set
{
this.mdrawGrid.DataSource = value;
}
}
public string[,] Text
{
get
{
return this.mdrawGrid.GridText;
}
set
{
this.mdrawGrid.GridText = value;
}
}
/// <summary>
/// 获取是否能执行绘制操作,只有初始了对象的行列数才可以执行Draw()操作
/// </summary>
/// <returns></returns>
public bool CanDraw
{
get
{
return this.mblnHadInitialized;
}
}
public int RowHeight
{
get
{
return mdrawGrid.RowHeight;
}
set
{
mdrawGrid.RowHeight = value;
}
}
#region IOuter 成员
/// <summary>
/// 初始行列数
/// </summary>
/// <param name="rows">初始对象的行数</param>
/// <param name="cols">初始对象的列数</param>
public virtual void Initialize(int rows, int cols)
{
mblnHadInitialized = true;
mdrawGrid.Initialize(rows,cols);
}
/// <summary>
/// 获取对象的行数
/// </summary>
public int Rows
{
get
{
return mdrawGrid.Rows;
}
}
/// <summary>
/// 获取对象的列数
/// </summary>
public int Cols
{
get
{
return mdrawGrid.Cols;
}
}
/// <summary>
/// 获取对象的高
/// </summary>
public override float Height
{
get
{
return mdrawGrid.Rows * mdrawGrid.RowHeight;
}
}
/// <summary>
/// 指定绘制区域
/// </summary>
System.Drawing.Rectangle Rectangle
{
get
{
return mdrawGrid.Rectangle;
}
set
{
mdrawGrid.Rectangle = value;
}
}
/// <summary>
/// 为对象指定单元设置文本值
/// </summary>
/// <param name="row">单元行</param>
/// <param name="col">单元列</param>
/// <param name="text">文本值</param>
public virtual void SetText(int row, int col, string text)
{
mdrawGrid.SetText(row,col,text);
}
/// <summary>
/// 用指定的行列分隔分隔的一串字符串,些操作默认已执行初始行列数
/// </summary>
/// <param name="text"></param>
/// <param name="colSplit"></param>
public virtual void SetText(char rowSplit,char colSplit,string text)
{
mdrawGrid.SetText(rowSplit,colSplit,text);
//mblnHadInitialized = true;
}
/// <summary>
/// 获取对象指定单元文本值
/// </summary>
/// <param name="row">单元行</param>
/// <param name="col">单元列</param>
/// <returns></returns>
public virtual string GetText(int row, int col)
{
return mdrawGrid.GetText(row,col);
}
/// <summary>
/// 在绘图表面绘制对象绘制文本
/// </summary>
public override void Draw()
{
if (mblnHadInitialized)
{
base.Draw();
//在指定的区域内绘制文本
mdrawGrid.Rectangle = new Rectangle((int)this.RectangleF.X + (int)this.MoveX,(int)this.RectangleF.Y + (int)this.MoveY,(int)this.RectangleF.Width,(int)this.RectangleF.Height);
mdrawGrid.Graphics = this.Graphics;
mdrawGrid.Draw();
}
else
{
throw new Exception("对象的行列数还未初始,请用Initialize()进行操作!");
}
}
#endregion
}//End Class
}//End NameSpace
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -