|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.ComponentModel.Design;
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
using System.Diagnostics;
|
|
|
|
|
using System.Drawing.Text;
|
|
|
|
|
using System.Drawing;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Net;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using System.Windows.Forms;
|
|
|
|
|
|
|
|
|
|
namespace DNSD_Controls
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 表格控件
|
|
|
|
|
/// </summary>
|
|
|
|
|
// Token: 0x0200005B RID: 91
|
|
|
|
|
[Description("一个表格控件")]
|
|
|
|
|
public class HslTable : UserControl
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 实例化一个表格对象
|
|
|
|
|
/// </summary>
|
|
|
|
|
// Token: 0x060007A5 RID: 1957 RVA: 0x00044274 File Offset: 0x00042474
|
|
|
|
|
public HslTable()
|
|
|
|
|
{
|
|
|
|
|
this.InitializeComponent();
|
|
|
|
|
this.sf = new StringFormat();
|
|
|
|
|
this.sf.Alignment = StringAlignment.Center;
|
|
|
|
|
this.sf.LineAlignment = StringAlignment.Center;
|
|
|
|
|
base.SetStyle(ControlStyles.UserPaint | ControlStyles.SupportsTransparentBackColor, true);
|
|
|
|
|
base.SetStyle(ControlStyles.ResizeRedraw, true);
|
|
|
|
|
base.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
|
|
|
|
|
base.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
|
|
|
|
|
bool flag = this.GetService(typeof(IDesignerHost)) != null || LicenseManager.UsageMode == LicenseUsageMode.Designtime;
|
|
|
|
|
if (flag)
|
|
|
|
|
{
|
|
|
|
|
this.tableValues.Add(new string[]
|
|
|
|
|
{
|
|
|
|
|
"φ31-61-2.5",
|
|
|
|
|
"1000",
|
|
|
|
|
"A类型",
|
|
|
|
|
"800 nm",
|
|
|
|
|
""
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取或设置控件的背景色
|
|
|
|
|
/// </summary>
|
|
|
|
|
// Token: 0x17000261 RID: 609
|
|
|
|
|
// (get) Token: 0x060007A6 RID: 1958 RVA: 0x00044442 File Offset: 0x00042642
|
|
|
|
|
// (set) Token: 0x060007A7 RID: 1959 RVA: 0x0004444A File Offset: 0x0004264A
|
|
|
|
|
[Browsable(true)]
|
|
|
|
|
[Description("获取或设置控件的背景色")]
|
|
|
|
|
[Category("HslControls")]
|
|
|
|
|
[DefaultValue(typeof(Color), "Transparent")]
|
|
|
|
|
[EditorBrowsable(EditorBrowsableState.Always)]
|
|
|
|
|
public override Color BackColor
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return base.BackColor;
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
base.BackColor = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取或设置当前控件的文本
|
|
|
|
|
/// </summary>
|
|
|
|
|
// Token: 0x17000262 RID: 610
|
|
|
|
|
// (get) Token: 0x060007A8 RID: 1960 RVA: 0x00044454 File Offset: 0x00042654
|
|
|
|
|
// (set) Token: 0x060007A9 RID: 1961 RVA: 0x0004446C File Offset: 0x0004266C
|
|
|
|
|
[Browsable(true)]
|
|
|
|
|
[Description("获取或设置当前控件的文本")]
|
|
|
|
|
[Category("HslControls")]
|
|
|
|
|
[EditorBrowsable(EditorBrowsableState.Always)]
|
|
|
|
|
[Bindable(true)]
|
|
|
|
|
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
|
|
|
|
|
public override string Text
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return base.Text;
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
base.Text = value;
|
|
|
|
|
base.Invalidate();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取或设置控件的前景色
|
|
|
|
|
/// </summary>
|
|
|
|
|
// Token: 0x17000263 RID: 611
|
|
|
|
|
// (get) Token: 0x060007AA RID: 1962 RVA: 0x0004447E File Offset: 0x0004267E
|
|
|
|
|
// (set) Token: 0x060007AB RID: 1963 RVA: 0x00044486 File Offset: 0x00042686
|
|
|
|
|
[Browsable(true)]
|
|
|
|
|
[Description("获取或设置控件的前景色")]
|
|
|
|
|
[Category("HslControls")]
|
|
|
|
|
[DefaultValue(typeof(Color), "Gray")]
|
|
|
|
|
[EditorBrowsable(EditorBrowsableState.Always)]
|
|
|
|
|
public override Color ForeColor
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return base.ForeColor;
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
base.ForeColor = value;
|
|
|
|
|
Brush brush = this.textBrush;
|
|
|
|
|
if (brush != null)
|
|
|
|
|
{
|
|
|
|
|
brush.Dispose();
|
|
|
|
|
}
|
|
|
|
|
this.textBrush = new SolidBrush(value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取或设置控件的表格边框的颜色
|
|
|
|
|
/// </summary>
|
|
|
|
|
// Token: 0x17000264 RID: 612
|
|
|
|
|
// (get) Token: 0x060007AC RID: 1964 RVA: 0x000444AF File Offset: 0x000426AF
|
|
|
|
|
// (set) Token: 0x060007AD RID: 1965 RVA: 0x000444B7 File Offset: 0x000426B7
|
|
|
|
|
[Browsable(true)]
|
|
|
|
|
[Description("获取或设置控件的表格边框的颜色")]
|
|
|
|
|
[Category("HslControls")]
|
|
|
|
|
[DefaultValue(typeof(Color), "LightGray")]
|
|
|
|
|
public Color BorderColor
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return this.borderColor;
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this.borderColor = value;
|
|
|
|
|
Pen pen = this.borderPen;
|
|
|
|
|
if (pen != null)
|
|
|
|
|
{
|
|
|
|
|
pen.Dispose();
|
|
|
|
|
}
|
|
|
|
|
this.borderPen = new Pen(value);
|
|
|
|
|
base.Invalidate();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取或设置当前的标题的文本颜色
|
|
|
|
|
/// </summary>
|
|
|
|
|
// Token: 0x17000265 RID: 613
|
|
|
|
|
// (get) Token: 0x060007AE RID: 1966 RVA: 0x000444E6 File Offset: 0x000426E6
|
|
|
|
|
// (set) Token: 0x060007AF RID: 1967 RVA: 0x000444EE File Offset: 0x000426EE
|
|
|
|
|
[Browsable(true)]
|
|
|
|
|
[Description("获取或设置当前的标题的文本颜色")]
|
|
|
|
|
[Category("HslControls")]
|
|
|
|
|
[DefaultValue(typeof(Color), "DimGray")]
|
|
|
|
|
public Color HeaderColor
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return this.headerColor;
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this.headerColor = value;
|
|
|
|
|
Brush brush = this.headerBrush;
|
|
|
|
|
if (brush != null)
|
|
|
|
|
{
|
|
|
|
|
brush.Dispose();
|
|
|
|
|
}
|
|
|
|
|
this.headerBrush = new SolidBrush(value);
|
|
|
|
|
base.Invalidate();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取或设置当前的最大标题的文本颜色
|
|
|
|
|
/// </summary>
|
|
|
|
|
// Token: 0x17000266 RID: 614
|
|
|
|
|
// (get) Token: 0x060007B0 RID: 1968 RVA: 0x0004451D File Offset: 0x0004271D
|
|
|
|
|
// (set) Token: 0x060007B1 RID: 1969 RVA: 0x00044525 File Offset: 0x00042725
|
|
|
|
|
[Browsable(true)]
|
|
|
|
|
[Description("获取或设置当前的最大标题的文本颜色")]
|
|
|
|
|
[Category("HslControls")]
|
|
|
|
|
[DefaultValue(typeof(Color), "DarkSlateGray")]
|
|
|
|
|
public Color TopHeaderColor
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return this.topTextColor;
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this.topTextColor = value;
|
|
|
|
|
Brush brush = this.topTextBrush;
|
|
|
|
|
if (brush != null)
|
|
|
|
|
{
|
|
|
|
|
brush.Dispose();
|
|
|
|
|
}
|
|
|
|
|
this.topTextBrush = new SolidBrush(value);
|
|
|
|
|
base.Invalidate();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取或设置当前表格的数据行的行数,不包括顶部最大的标题行
|
|
|
|
|
/// </summary>
|
|
|
|
|
// Token: 0x17000267 RID: 615
|
|
|
|
|
// (get) Token: 0x060007B2 RID: 1970 RVA: 0x00044554 File Offset: 0x00042754
|
|
|
|
|
// (set) Token: 0x060007B3 RID: 1971 RVA: 0x0004456C File Offset: 0x0004276C
|
|
|
|
|
[Browsable(true)]
|
|
|
|
|
[Description("获取或设置当前表格的数据行的行数,不包括顶部最大的标题行")]
|
|
|
|
|
[Category("HslControls")]
|
|
|
|
|
[DefaultValue(5)]
|
|
|
|
|
public int RowsTotalCount
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return this.rowsTotalCount;
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
//bool flag = this.rowsTotalCount > 0;
|
|
|
|
|
//if (flag)
|
|
|
|
|
{
|
|
|
|
|
this.rowsTotalCount = value;
|
|
|
|
|
base.Invalidate();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取或设置当前最大标题的文本信息,默认为今日生产计划
|
|
|
|
|
/// </summary>
|
|
|
|
|
// Token: 0x17000268 RID: 616
|
|
|
|
|
// (get) Token: 0x060007B4 RID: 1972 RVA: 0x00044597 File Offset: 0x00042797
|
|
|
|
|
// (set) Token: 0x060007B5 RID: 1973 RVA: 0x0004459F File Offset: 0x0004279F
|
|
|
|
|
[Browsable(true)]
|
|
|
|
|
[Description("获取或设置当前最大标题的文本信息,默认为今日生产计划")]
|
|
|
|
|
[Category("HslControls")]
|
|
|
|
|
[DefaultValue("今日生产计划")]
|
|
|
|
|
public string TopHeaderText
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return this.topHeaderText;
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this.topHeaderText = value;
|
|
|
|
|
base.Invalidate();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取或设置当前辅助标题的文本信息,默认为9月2日
|
|
|
|
|
/// </summary>
|
|
|
|
|
// Token: 0x17000269 RID: 617
|
|
|
|
|
// (get) Token: 0x060007B6 RID: 1974 RVA: 0x000445B0 File Offset: 0x000427B0
|
|
|
|
|
// (set) Token: 0x060007B7 RID: 1975 RVA: 0x000445B8 File Offset: 0x000427B8
|
|
|
|
|
[Browsable(true)]
|
|
|
|
|
[Description("获取或设置当前辅助标题的文本信息,默认为9月2日")]
|
|
|
|
|
[Category("HslControls")]
|
|
|
|
|
[DefaultValue("9月2日")]
|
|
|
|
|
public string AssistHeaderText
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return this.assistHeaderText;
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this.assistHeaderText = value;
|
|
|
|
|
base.Invalidate();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取或设置当前最大标题的高度,如果小于1就是百分比,如果大于1就是绝对值
|
|
|
|
|
/// </summary>
|
|
|
|
|
// Token: 0x1700026A RID: 618
|
|
|
|
|
// (get) Token: 0x060007B8 RID: 1976 RVA: 0x000445C9 File Offset: 0x000427C9
|
|
|
|
|
// (set) Token: 0x060007B9 RID: 1977 RVA: 0x000445D1 File Offset: 0x000427D1
|
|
|
|
|
[Browsable(true)]
|
|
|
|
|
[Description("获取或设置当前最大标题的高度,如果小于1就是百分比,如果大于1就是绝对值")]
|
|
|
|
|
[Category("HslControls")]
|
|
|
|
|
[DefaultValue(0.25f)]
|
|
|
|
|
public float TopHeaderHeight
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return this.headHeight;
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this.headHeight = value;
|
|
|
|
|
base.Invalidate();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 列的宽度信息设置,数组的长度决定了列的数量
|
|
|
|
|
/// </summary>
|
|
|
|
|
// Token: 0x1700026B RID: 619
|
|
|
|
|
// (get) Token: 0x060007BA RID: 1978 RVA: 0x000445E2 File Offset: 0x000427E2
|
|
|
|
|
// (set) Token: 0x060007BB RID: 1979 RVA: 0x000445EA File Offset: 0x000427EA
|
|
|
|
|
[Category("HslControls")]
|
|
|
|
|
[Description("列的宽度信息设置,数组的长度决定了列的数量")]
|
|
|
|
|
[TypeConverter(typeof(CollectionConverter))]
|
|
|
|
|
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
|
|
|
|
|
public float[] ColumnWidth
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return this.columnWidth;
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this.columnWidth = value;
|
|
|
|
|
base.Invalidate();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 列的标题信息设置,数组长度应该刚好是列的数组,如果少于,多出来的列则为空,如果大于,多出来的列则不显示
|
|
|
|
|
/// </summary>
|
|
|
|
|
// Token: 0x1700026C RID: 620
|
|
|
|
|
// (get) Token: 0x060007BC RID: 1980 RVA: 0x000445FB File Offset: 0x000427FB
|
|
|
|
|
// (set) Token: 0x060007BD RID: 1981 RVA: 0x00044603 File Offset: 0x00042803
|
|
|
|
|
[Category("HslControls")]
|
|
|
|
|
[Description("列的标题信息设置,数组长度应该刚好是列的数组,如果少于,多出来的列则为空,如果大于,多出来的列则不显示")]
|
|
|
|
|
[TypeConverter(typeof(CollectionConverter))]
|
|
|
|
|
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
|
|
|
|
|
public string[] ColumnHeader
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return this.columnHeader;
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this.columnHeader = value;
|
|
|
|
|
base.Invalidate();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取或设置顶部标题的字体大小,默认18
|
|
|
|
|
/// </summary>
|
|
|
|
|
// Token: 0x1700026D RID: 621
|
|
|
|
|
// (get) Token: 0x060007BE RID: 1982 RVA: 0x00044614 File Offset: 0x00042814
|
|
|
|
|
// (set) Token: 0x060007BF RID: 1983 RVA: 0x0004461C File Offset: 0x0004281C
|
|
|
|
|
[Browsable(true)]
|
|
|
|
|
[Description("获取或设置顶部标题的字体大小,默认18")]
|
|
|
|
|
[Category("HslControls")]
|
|
|
|
|
[DefaultValue(28f)]
|
|
|
|
|
public float TopHeaderTextSize
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return this.headTextSize;
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this.headTextSize = value;
|
|
|
|
|
base.Invalidate();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取或设置是否显示列标题的文本信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
// Token: 0x1700026E RID: 622
|
|
|
|
|
// (get) Token: 0x060007C0 RID: 1984 RVA: 0x0004462D File Offset: 0x0004282D
|
|
|
|
|
// (set) Token: 0x060007C1 RID: 1985 RVA: 0x00044635 File Offset: 0x00042835
|
|
|
|
|
[Browsable(true)]
|
|
|
|
|
[Description("获取或设置是否显示列标题的文本信息")]
|
|
|
|
|
[Category("HslControls")]
|
|
|
|
|
[DefaultValue(true)]
|
|
|
|
|
public bool IsShowColumnHeader
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return this.isShowColumnHeader;
|
|
|
|
|
}
|
|
|
|
|
set
|
|
|
|
|
{
|
|
|
|
|
this.isShowColumnHeader = value;
|
|
|
|
|
base.Invalidate();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <inheritdoc />
|
|
|
|
|
// Token: 0x060007C2 RID: 1986 RVA: 0x00044648 File Offset: 0x00042848
|
|
|
|
|
protected override void OnPaint(PaintEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
base.OnPaint(e);
|
|
|
|
|
e.Graphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
|
|
|
|
|
bool flag = base.Width < 20 || base.Height < 20;
|
|
|
|
|
if (!flag)
|
|
|
|
|
{
|
|
|
|
|
this.PaintHslControls(e.Graphics, base.Width, (float)base.Height);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 可以在任意的画刷上绘制当前的控件的图形
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="g">画刷</param>
|
|
|
|
|
/// <param name="width">宽度信息</param>
|
|
|
|
|
/// <param name="height">高度信息</param>
|
|
|
|
|
// Token: 0x060007C3 RID: 1987 RVA: 0x000446A4 File Offset: 0x000428A4
|
|
|
|
|
public void PaintHslControls(Graphics g, int width, float height)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if (true)
|
|
|
|
|
{
|
|
|
|
|
float num = (this.headHeight < 1f) ? (height * this.headHeight) : this.headHeight;
|
|
|
|
|
float num2 = (this.rowsTotalCount == 0) ? (height - num) : ((height - num) / (float)this.rowsTotalCount);
|
|
|
|
|
bool flag2 = this.headHeight > 0f;
|
|
|
|
|
if (flag2)
|
|
|
|
|
{
|
|
|
|
|
RectangleF layoutRectangle = new RectangleF(0f, 0f, (float)width, num);
|
|
|
|
|
using (Font font = new Font(this.Font.FontFamily, this.headTextSize))
|
|
|
|
|
{
|
|
|
|
|
g.DrawString(this.topHeaderText, font, this.topTextBrush, layoutRectangle, this.sf);
|
|
|
|
|
SizeF sizeF = g.MeasureString(this.topHeaderText, font);
|
|
|
|
|
g.DrawString(this.assistHeaderText, this.Font, this.topTextBrush, new PointF((float)width * 0.5f + sizeF.Width / 2f, layoutRectangle.Height / 2f + (float)font.Height / 2f - (float)this.Font.Height - 1f));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
bool flag3 = this.isShowColumnHeader;
|
|
|
|
|
if (flag3)
|
|
|
|
|
{
|
|
|
|
|
for (int i = 0; i < this.columnHeader.Length; i++)
|
|
|
|
|
{
|
|
|
|
|
bool flag4 = i + 1 < this.columnWidth.Length;
|
|
|
|
|
if (flag4)
|
|
|
|
|
{
|
|
|
|
|
RectangleF layoutRectangle2 = new RectangleF((float)width * this.columnWidth[i], num, (float)width * (this.columnWidth[i + 1] - this.columnWidth[i]), num2);
|
|
|
|
|
bool flag5 = !string.IsNullOrEmpty(this.columnHeader[i]);
|
|
|
|
|
if (flag5)
|
|
|
|
|
{
|
|
|
|
|
g.DrawString(this.columnHeader[i], this.Font, this.headerBrush, layoutRectangle2, this.sf);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
g.DrawLine(this.borderPen, 0, 0, width - 1, 0);
|
|
|
|
|
bool flag6 = this.headHeight > 0f;
|
|
|
|
|
if (flag6)
|
|
|
|
|
{
|
|
|
|
|
g.DrawLine(this.borderPen, 0, (int)num, width - 1, (int)num);
|
|
|
|
|
}
|
|
|
|
|
for (int j = 1; j < this.rowsTotalCount; j++)
|
|
|
|
|
{
|
|
|
|
|
g.DrawLine(this.borderPen, 0, (int)((float)j * num2 + num), width - 1, (int)((float)j * num2 + num));
|
|
|
|
|
}
|
|
|
|
|
g.DrawLine(this.borderPen, 0f, height - 1f, (float)(width - 1), height - 1f);
|
|
|
|
|
g.DrawLine(this.borderPen, 0f, 0f, 0f, height - 1f);
|
|
|
|
|
g.DrawLine(this.borderPen, (float)(width - 1), 0f, (float)(width - 1), height - 1f);
|
|
|
|
|
for (int k = 0; k < this.columnWidth.Length - 1; k++)
|
|
|
|
|
{
|
|
|
|
|
g.DrawLine(this.borderPen, (float)((int)((float)width * this.columnWidth[k])), (float)((int)num), (float)((int)((float)width * this.columnWidth[k])), height - 1f);
|
|
|
|
|
}
|
|
|
|
|
for (int l = 0; l < this.tableValues.Count; l++)
|
|
|
|
|
{
|
|
|
|
|
for (int m = 0; m < this.columnHeader.Length; m++)
|
|
|
|
|
{
|
|
|
|
|
bool flag7 = m + 1 < this.columnWidth.Length;
|
|
|
|
|
if (flag7)
|
|
|
|
|
{
|
|
|
|
|
RectangleF rectangle = new RectangleF((float)width * this.columnWidth[m], num2 * (float)(l + (this.isShowColumnHeader ? 1 : 0)) + num, (float)width * (this.columnWidth[m + 1] - this.columnWidth[m]) - 1f, num2 - 1f);
|
|
|
|
|
bool flag8 = m < this.tableValues[l].Length;
|
|
|
|
|
if (flag8)
|
|
|
|
|
{
|
|
|
|
|
bool flag9 = this.OnDrawCellTextEvent == null;
|
|
|
|
|
if (flag9)
|
|
|
|
|
{
|
|
|
|
|
this.DrawCellText(g, l, m, rectangle, this.tableValues[l][m], this.sf);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
this.OnDrawCellTextEvent(g, l, m, rectangle, this.tableValues[l][m], this.sf);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 当绘制单元格的时候触发
|
|
|
|
|
/// </summary>
|
|
|
|
|
// Token: 0x1400000B RID: 11
|
|
|
|
|
// (add) Token: 0x060007C4 RID: 1988 RVA: 0x00044B04 File Offset: 0x00042D04
|
|
|
|
|
// (remove) Token: 0x060007C5 RID: 1989 RVA: 0x00044B3C File Offset: 0x00042D3C
|
|
|
|
|
|
|
|
|
|
public event HslTable.DrawCellTextDelegate OnDrawCellTextEvent;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 绘制单元格是核心方法,你也可以根据自己的需求进行重写,实现一些特殊的图形或是颜色显示
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="g">绘图上下文</param>
|
|
|
|
|
/// <param name="rowIndex">行索引</param>
|
|
|
|
|
/// <param name="colIndex">列索引</param>
|
|
|
|
|
/// <param name="rectangle">文本的区域</param>
|
|
|
|
|
/// <param name="value">文本的值</param>
|
|
|
|
|
/// <param name="sf">文本的对齐方式</param>
|
|
|
|
|
// Token: 0x060007C6 RID: 1990 RVA: 0x00044B71 File Offset: 0x00042D71
|
|
|
|
|
public virtual void DrawCellText(Graphics g, int rowIndex, int colIndex, RectangleF rectangle, string value, StringFormat sf)
|
|
|
|
|
{
|
|
|
|
|
g.DrawString(value, this.Font, this.textBrush, rectangle, sf);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 从底部新增一条数据信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="values">数据信息</param>
|
|
|
|
|
// Token: 0x060007C7 RID: 1991 RVA: 0x00044B8D File Offset: 0x00042D8D
|
|
|
|
|
public void AddRowDown(string[] values)
|
|
|
|
|
{
|
|
|
|
|
this.AddRowDown(new List<string[]>
|
|
|
|
|
{
|
|
|
|
|
values
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 从底部新增多条数据信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="values">数据信息</param>
|
|
|
|
|
// Token: 0x060007C8 RID: 1992 RVA: 0x00044BA4 File Offset: 0x00042DA4
|
|
|
|
|
public void AddRowDown(List<string[]> values)
|
|
|
|
|
{
|
|
|
|
|
this.tableValues.AddRange(values);
|
|
|
|
|
bool flag = this.isShowColumnHeader;
|
|
|
|
|
if (flag)
|
|
|
|
|
{
|
|
|
|
|
while (this.tableValues.Count >= this.rowsTotalCount)
|
|
|
|
|
{
|
|
|
|
|
this.tableValues.RemoveAt(0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
while (this.tableValues.Count > this.rowsTotalCount)
|
|
|
|
|
{
|
|
|
|
|
this.tableValues.RemoveAt(0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
base.Invalidate();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 从顶部新增一条数据信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="values">数据信息</param>
|
|
|
|
|
// Token: 0x060007C9 RID: 1993 RVA: 0x00044C29 File Offset: 0x00042E29
|
|
|
|
|
public void AddRowTop(string[] values)
|
|
|
|
|
{
|
|
|
|
|
this.AddRowTop(new List<string[]>
|
|
|
|
|
{
|
|
|
|
|
values
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 从顶部新增一条数据信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="values">数据信息</param>
|
|
|
|
|
// Token: 0x060007CA RID: 1994 RVA: 0x00044C40 File Offset: 0x00042E40
|
|
|
|
|
public void AddRowTop(List<string[]> values)
|
|
|
|
|
{
|
|
|
|
|
bool flag = values != null;
|
|
|
|
|
if (flag)
|
|
|
|
|
{
|
|
|
|
|
for (int i = 0; i < values.Count; i++)
|
|
|
|
|
{
|
|
|
|
|
this.tableValues.Insert(0, values[i]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
bool flag2 = this.isShowColumnHeader;
|
|
|
|
|
if (flag2)
|
|
|
|
|
{
|
|
|
|
|
while (this.tableValues.Count >= this.rowsTotalCount)
|
|
|
|
|
{
|
|
|
|
|
this.tableValues.RemoveAt(this.tableValues.Count - 1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
while (this.tableValues.Count > this.rowsTotalCount)
|
|
|
|
|
{
|
|
|
|
|
this.tableValues.RemoveAt(this.tableValues.Count - 1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
base.Invalidate();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 设置表的所有的数据信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="values">数据值</param>
|
|
|
|
|
// Token: 0x060007CB RID: 1995 RVA: 0x00044D09 File Offset: 0x00042F09
|
|
|
|
|
public void SetTableValue(List<string[]> values)
|
|
|
|
|
{
|
|
|
|
|
this.tableValues = values;
|
|
|
|
|
base.Invalidate();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 设置当前的表格的指定单元的数据内容,需要传递单元格信息,数据值,是否刷新界面。
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="rowIndex">所在的行号信息</param>
|
|
|
|
|
/// <param name="colIndex">所在的列号信息</param>
|
|
|
|
|
/// <param name="value">数据值</param>
|
|
|
|
|
/// <param name="updateUI">是否刷新界面</param>
|
|
|
|
|
// Token: 0x060007CC RID: 1996 RVA: 0x00044D1C File Offset: 0x00042F1C
|
|
|
|
|
public void SetTableValue(int rowIndex, int colIndex, string value, bool updateUI = true)
|
|
|
|
|
{
|
|
|
|
|
bool flag = rowIndex >= this.tableValues.Count;
|
|
|
|
|
if (!flag)
|
|
|
|
|
{
|
|
|
|
|
bool flag2 = colIndex >= this.tableValues[rowIndex].Length;
|
|
|
|
|
if (!flag2)
|
|
|
|
|
{
|
|
|
|
|
this.tableValues[rowIndex][colIndex] = value;
|
|
|
|
|
if (updateUI)
|
|
|
|
|
{
|
|
|
|
|
base.Invalidate();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取指定行号,列号的单元格的文本信息,如果索引超出,返回NULL
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="rowIndex">行号信息</param>
|
|
|
|
|
/// <param name="colIndex">列号信息</param>
|
|
|
|
|
/// <returns>单元格文本信息</returns>
|
|
|
|
|
// Token: 0x060007CD RID: 1997 RVA: 0x00044D78 File Offset: 0x00042F78
|
|
|
|
|
public string GetTableValue(int rowIndex, int colIndex)
|
|
|
|
|
{
|
|
|
|
|
bool flag = rowIndex >= this.tableValues.Count;
|
|
|
|
|
string result;
|
|
|
|
|
if (flag)
|
|
|
|
|
{
|
|
|
|
|
result = null;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
bool flag2 = colIndex >= this.tableValues[rowIndex].Length;
|
|
|
|
|
if (flag2)
|
|
|
|
|
{
|
|
|
|
|
result = null;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
result = this.tableValues[rowIndex][colIndex];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取所有的数据信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns>单元格文本信息</returns>
|
|
|
|
|
// Token: 0x060007CE RID: 1998 RVA: 0x00044DD0 File Offset: 0x00042FD0
|
|
|
|
|
public List<string[]> GetTableValue()
|
|
|
|
|
{
|
|
|
|
|
return this.tableValues;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 清理所有正在使用的资源。
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
|
|
|
|
|
// Token: 0x060007CF RID: 1999 RVA: 0x00044DE8 File Offset: 0x00042FE8
|
|
|
|
|
protected override void Dispose(bool disposing)
|
|
|
|
|
{
|
|
|
|
|
bool flag = disposing && this.components != null;
|
|
|
|
|
if (flag)
|
|
|
|
|
{
|
|
|
|
|
this.components.Dispose();
|
|
|
|
|
}
|
|
|
|
|
base.Dispose(disposing);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 设计器支持所需的方法 - 不要修改
|
|
|
|
|
/// 使用代码编辑器修改此方法的内容。
|
|
|
|
|
/// </summary>
|
|
|
|
|
// Token: 0x060007D0 RID: 2000 RVA: 0x00044E20 File Offset: 0x00043020
|
|
|
|
|
private void InitializeComponent()
|
|
|
|
|
{
|
|
|
|
|
base.SuspendLayout();
|
|
|
|
|
base.AutoScaleMode = AutoScaleMode.None;
|
|
|
|
|
this.BackColor = Color.Transparent;
|
|
|
|
|
this.Font = new Font("微软雅黑", 9f, FontStyle.Regular, GraphicsUnit.Point, 134);
|
|
|
|
|
this.ForeColor = Color.Gray;
|
|
|
|
|
base.Name = "HslTable";
|
|
|
|
|
base.Size = new Size(444, 206);
|
|
|
|
|
base.ResumeLayout(false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Token: 0x040003C7 RID: 967
|
|
|
|
|
private StringFormat sf = null;
|
|
|
|
|
|
|
|
|
|
// Token: 0x040003C8 RID: 968
|
|
|
|
|
private Color borderColor = Color.LightGray;
|
|
|
|
|
|
|
|
|
|
// Token: 0x040003C9 RID: 969
|
|
|
|
|
private Pen borderPen = new Pen(Color.LightGray);
|
|
|
|
|
|
|
|
|
|
// Token: 0x040003CA RID: 970
|
|
|
|
|
private Brush textBrush = new SolidBrush(Color.Gray);
|
|
|
|
|
|
|
|
|
|
// Token: 0x040003CB RID: 971
|
|
|
|
|
private Color headerColor = Color.DimGray;
|
|
|
|
|
|
|
|
|
|
// Token: 0x040003CC RID: 972
|
|
|
|
|
private Brush headerBrush = new SolidBrush(Color.DimGray);
|
|
|
|
|
|
|
|
|
|
// Token: 0x040003CD RID: 973
|
|
|
|
|
private Color topTextColor = Color.DarkSlateGray;
|
|
|
|
|
|
|
|
|
|
// Token: 0x040003CE RID: 974
|
|
|
|
|
private Brush topTextBrush = new SolidBrush(Color.DarkSlateGray);
|
|
|
|
|
|
|
|
|
|
// Token: 0x040003CF RID: 975
|
|
|
|
|
private float headTextSize = 18f;
|
|
|
|
|
|
|
|
|
|
// Token: 0x040003D0 RID: 976
|
|
|
|
|
private float headHeight = 0.25f;
|
|
|
|
|
|
|
|
|
|
// Token: 0x040003D1 RID: 977
|
|
|
|
|
private int rowsTotalCount = 5;
|
|
|
|
|
|
|
|
|
|
// Token: 0x040003D2 RID: 978
|
|
|
|
|
private float[] columnWidth = new float[]
|
|
|
|
|
{
|
|
|
|
|
0f,
|
|
|
|
|
0.3f,
|
|
|
|
|
0.45f,
|
|
|
|
|
0.55f,
|
|
|
|
|
0.8f,
|
|
|
|
|
1f
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// Token: 0x040003D3 RID: 979
|
|
|
|
|
private string[] columnHeader = new string[]
|
|
|
|
|
{
|
|
|
|
|
"规格",
|
|
|
|
|
"生产数量",
|
|
|
|
|
"工艺",
|
|
|
|
|
"完成度",
|
|
|
|
|
"特别说明"
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// Token: 0x040003D4 RID: 980
|
|
|
|
|
private string topHeaderText = "今日生产计划";
|
|
|
|
|
|
|
|
|
|
// Token: 0x040003D5 RID: 981
|
|
|
|
|
private string assistHeaderText = "9月2日";
|
|
|
|
|
|
|
|
|
|
// Token: 0x040003D6 RID: 982
|
|
|
|
|
private List<string[]> tableValues = new List<string[]>();
|
|
|
|
|
|
|
|
|
|
// Token: 0x040003D7 RID: 983
|
|
|
|
|
private bool isShowColumnHeader = true;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 必需的设计器变量。
|
|
|
|
|
/// </summary>
|
|
|
|
|
// Token: 0x040003D8 RID: 984
|
|
|
|
|
private IContainer components = null;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 绘制单元格的委托信息,可以自定义的实现一些高级的操作。
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="g">绘图上下文</param>
|
|
|
|
|
/// <param name="rowIndex">行号</param>
|
|
|
|
|
/// <param name="colIndex">列号</param>
|
|
|
|
|
/// <param name="rectangle">绘图的区域</param>
|
|
|
|
|
/// <param name="value">本文内容</param>
|
|
|
|
|
/// <param name="sf"></param>
|
|
|
|
|
// Token: 0x020000FE RID: 254
|
|
|
|
|
// (Invoke) Token: 0x06000FCC RID: 4044
|
|
|
|
|
public delegate void DrawCellTextDelegate(Graphics g, int rowIndex, int colIndex, RectangleF rectangle, string value, StringFormat sf);
|
|
|
|
|
}
|
|
|
|
|
}
|