2022-12-27 17:33:33 +08:00

172 lines
3.2 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Drawing;
namespace GoldPrinter
{
public class Outer : Printer, IDisposable
{
private bool _IsAverageColsWidth;
protected DrawGrid mdrawGrid;
protected bool mblnHadInitialized;
public bool IsAverageColsWidth
{
get
{
return this._IsAverageColsWidth;
}
set
{
this._IsAverageColsWidth = value;
}
}
public object DataSource
{
get
{
return this.mdrawGrid.DataSource;
}
set
{
this.mdrawGrid.DataSource = value;
if (this.DataSource.GetType().ToString() == "System.String[]" || this.DataSource.GetType().ToString() == "System.String[,]" || this.DataSource.GetType().ToString() == "System.Data.DataTable")
{
this.mblnHadInitialized = true;
}
}
}
public string[,] Text
{
get
{
return this.mdrawGrid.GridText;
}
set
{
this.mdrawGrid.GridText = value;
this.mblnHadInitialized = true;
}
}
public bool CanDraw
{
get
{
return this.mblnHadInitialized;
}
}
public int RowHeight
{
get
{
return this.mdrawGrid.PreferredRowHeight;
}
set
{
this.mdrawGrid.PreferredRowHeight = value;
}
}
public int Rows
{
get
{
return this.mdrawGrid.Rows;
}
}
public int Cols
{
get
{
return this.mdrawGrid.Cols;
}
}
public int[] ColsWidth
{
get
{
return this.mdrawGrid.ColsWidth;
}
set
{
this.mdrawGrid.ColsWidth = value;
}
}
public override int Height
{
get
{
return this.mdrawGrid.Rows * this.mdrawGrid.PreferredRowHeight;
}
}
public Outer()
{
this._IsAverageColsWidth = true;
this.mblnHadInitialized = false;
this.IsDrawAllPage = false;
this.mdrawGrid = new DrawGrid();
this.mdrawGrid.AlignMent = AlignFlag.Left;
this.mdrawGrid.ColsAlignString = "";
this.mdrawGrid.Border = GridBorderFlag.None;
this.mdrawGrid.Line = GridLineFlag.None;
this.mdrawGrid.Merge = GridMergeFlag.None;
this.Font = new Font("宋体", 11f);
this.mdrawGrid.PreferredRowHeight = this.Font.Height;
this.mdrawGrid.Initialize(0, 0);
}
public virtual void Initialize(int rows, int cols)
{
this.mblnHadInitialized = true;
this.mdrawGrid.Initialize(rows, cols);
}
public virtual void SetText(int row, int col, string text)
{
this.mdrawGrid.SetText(row, col, text);
}
public virtual void SetText(char rowSplit, char colSplit, string text)
{
this.mdrawGrid.SetText((int)rowSplit, (int)colSplit, text);
}
public virtual string GetText(int row, int col)
{
return this.mdrawGrid.GetText(row, col);
}
public override void Draw()
{
if (this.mblnHadInitialized)
{
base.Draw();
this.mdrawGrid.Rectangle = new Rectangle(base.Rectangle.X + base.MoveX, base.Rectangle.Y + base.MoveY, base.Rectangle.Width, base.Rectangle.Height);
this.mdrawGrid.Graphics = base.Graphics;
if (this._IsAverageColsWidth)
{
this.mdrawGrid.Width = this.mdrawGrid.Rectangle.Width;
this.mdrawGrid.ColsWidth = this.mdrawGrid.GetAverageColsWidth();
}
this.mdrawGrid.Draw();
return;
}
throw new Exception("对象的行列数还未初始请用Initialize进行操作");
}
public override void Dispose()
{
this.mdrawGrid.Dispose();
}
}
}