using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Linq;
|
using System.Text;
|
using System.Windows.Forms;
|
using static DPumpHydr.WinFrmUI.WenSkin.Controls.WenDataTextBox;
|
|
namespace DPumpHydr.WinFrmUI.WenSkin.Controls
|
{
|
public class WenDataGridViewEdit : WenControl
|
{
|
public WenDataGridViewEdit() : base()
|
{
|
Size = new System.Drawing.Size(400, 300);
|
wenDataGridView = new WenDataGridView()
|
{
|
Dock = DockStyle.Fill,
|
AllowUserToAddRows = false,
|
AllowUserToDeleteRows = false,
|
ReadOnly = true
|
};
|
wenDataTextBox = new WenDataTextBox()
|
{
|
Dock = DockStyle.Top,
|
Height = 80,
|
};
|
this.Controls.Add(WenDataGridView);
|
this.Controls.Add(WenDataTextBox);
|
}
|
|
#region 私有属性
|
private readonly WenDataGridView wenDataGridView;
|
private readonly WenDataTextBox wenDataTextBox;
|
private WenDataGridViewColumnCollection columns;
|
#endregion
|
|
#region 公有属性
|
|
public WenDataGridView WenDataGridView => wenDataGridView;
|
public WenDataTextBox WenDataTextBox=>wenDataTextBox;
|
|
[Category("Wen"), Description("增加列"), DefaultValue(false)]
|
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
|
public WenDataGridViewColumnCollection Columns => columns ??= new WenDataGridViewColumnCollection(this, this.WenDataGridView);
|
|
[Category("Wen"), Description("列头高度"), DefaultValue(false)]
|
public int TopHeight { get => WenDataTextBox.Height; set => WenDataTextBox.Height = value; }
|
|
#endregion
|
|
#region 类
|
|
public class WenDataGridViewColumn : DataGridViewColumn
|
{
|
public WenDataGridViewColumn():base()
|
{
|
}
|
|
public WenDataGridViewColumn(DataGridViewCell cellTemplate) : base(cellTemplate)
|
{
|
}
|
|
[Category("Wen"), Description("是否增加编辑项"), DefaultValue(false)]
|
public bool Edit { get; set; } = false;
|
|
[Category("Wen"), Description("是否主键"), DefaultValue(false)]
|
public bool Identity { get; set; } = false;
|
}
|
|
public class WenDataGridViewColumnCollection : DataGridViewColumnCollection
|
{
|
private WenDataGridViewEdit owner;
|
public WenDataGridViewColumnCollection(WenDataGridViewEdit owner,WenDataGridView wenDataGridView) : base(wenDataGridView)
|
{
|
this.owner = owner;
|
}
|
|
public new WenDataGridViewColumn this[int index] => base[index] as WenDataGridViewColumn;
|
public new WenDataGridViewColumn this[string str] => base[str] as WenDataGridViewColumn;
|
public override int Add(DataGridViewColumn column)
|
{
|
AddTextBox(column);
|
return base.Add(column);
|
}
|
public override int Add(string columnName, string headerText)
|
{
|
return base.Add(columnName, headerText);
|
}
|
public override void AddRange(params DataGridViewColumn[] dataGridViewColumns)
|
{
|
foreach (var item in dataGridViewColumns)
|
{
|
AddTextBox(item);
|
}
|
base.AddRange(dataGridViewColumns);
|
}
|
public override void Clear()
|
{
|
owner.WenDataTextBox.Items.Clear();
|
base.Clear();
|
}
|
|
private void AddTextBox(DataGridViewColumn column)
|
{
|
if (column is WenDataGridViewColumn wen && wen.Edit)
|
{
|
owner.WenDataTextBox.Items.Add(new WenDataTextBoxColumnText()
|
{
|
TextLable = wen.HeaderText,
|
ColumnName = wen.DataPropertyName,
|
Identity = wen.Identity
|
});
|
}
|
}
|
}
|
#endregion
|
}
|
}
|