功能是拖到窗体上后,只需要选择EditType类型就可以根据所选的类型去给控件加上相应的默认属性(例外,datasource,displaymember,valuemember等)
选择类型为None的时候也可以在窗体Load事件中重新设置这些属性我想问的是,下面的代码写的合不合理,有没有更好的办法,先行谢过各位了,第一次封装控件
public partial class CustomGridLookUpEdit : GridLookUpEdit
{
#region 控件类别枚举
/// <summary>
/// 控件类别枚举
/// </summary>
public enum GridLookUpEditType
{
/// <summary>
/// none
/// </summary>
None,
/// <summary>
/// 客户信息
/// </summary>
Customer,
/// <summary>
/// 厂商信息
/// </summary>
Provider,
/// <summary>
/// 产品信息
/// </summary>
Prod,
/// <summary>
/// 销售单据
/// </summary>
SaleOrder,
/// <summary>
/// 采购单据
/// </summary>
StockOrder
}
#endregion #region 内部成员字段
/// <summary>
/// datasource
/// </summary>
private DataSet _ds;
/// <summary>
/// 显示的文本
/// </summary>
private string _displayText = null;
/// <summary>
/// 显示文本对应的值
/// </summary>
private string _displayValue = null;
/// <summary>
/// 控件类别
/// </summary>
private GridLookUpEditType _type = GridLookUpEditType.None;
#endregion #region 封装成员字段
/// <summary>
///
/// </summary>
public DataSet Ds
{
get { return _ds; }
set { _ds = value; }
}
/// <summary>
///
/// </summary>
public string DisplayText
{
get { return _displayText; }
set { _displayText = value; }
}
/// <summary>
///
/// </summary>
public string DisplayValue
{
get { return _displayValue; }
set { _displayValue = value; }
}
/// <summary>
/// 数据源
/// </summary>
public object DataSource
{
get { return this.Properties.DataSource; } set { this.Properties.DataSource = value; }
}
/// <summary>
///
/// </summary>
public GridLookUpEditType EditType
{
get { return _type; }
set
{
_type = value;
SetDisplayValue(_type);
}
}
#endregion #region 自动生成代码
/// <summary>
/// 构造
/// </summary>
public CustomGridLookUpEdit()
{
InitializeComponent(); }
/// <summary>
/// 重构
/// </summary>
/// <param name="container"></param>
public CustomGridLookUpEdit(IContainer container)
{
container.Add(this); InitializeComponent();
}
#endregion #region 选择对应类别
/// <summary>
///
/// </summary>
public void SetDisplayValue(GridLookUpEditType type)
{
switch (type)
{
case GridLookUpEditType.None: None(); break; //none
case GridLookUpEditType.Customer: CustomerEdit(); break; //客户信息
case GridLookUpEditType.Provider: ProviderEdit(); break; //厂商信息
case GridLookUpEditType.Prod: ProdEdit(); break; //产品信息
case GridLookUpEditType.SaleOrder: SaleOrderEdit(); break; //销售订单
case GridLookUpEditType.StockOrder: StockOrderEdit(); break; //采购订单
}
}
/// <summary>
/// none
/// </summary>
private void None()
{
this.Ds = null;
this.DisplayText = null;
this.DisplayValue = null;
DataBinding();
}
/// <summary>
/// 客户信息
/// </summary>
private void CustomerEdit()
{
this.DisplayText = "Customer";
this.DisplayValue = "CustomerId";
//(new GetDBType()).GetDataBase().GetData(DALClassType.Customer);这个是通过反射去数据层取得数据源
this.Ds = (new GetDBType()).GetDataBase().GetData(DALClassType.Customer);
DataBinding();
}
/// <summary>
/// 产商信息
/// </summary>
private void ProviderEdit()
{
this.DisplayText = "Provider";
this.DisplayValue = "ProviderId";
this.Ds = (new GetDBType()).GetDataBase().GetData(DALClassType.Provider);
DataBinding();
}
/// <summary>
/// 产品信息
/// </summary>
private void ProdEdit()
{
this.DisplayText = "Prod";
this.DisplayValue = "ProdId";
this.Ds = (new GetDBType()).GetDataBase().GetData(DALClassType.Prod);
DataBinding();
}
/// <summary>
/// 销售订单
/// </summary>
private void SaleOrderEdit()
{
this.DisplayText = "SaleOrder";
this.DisplayValue = "SaleOrderId";
this.Ds = (new GetDBType()).GetDataBase().GetData(DALClassType.SaleOrder);
DataBinding();
}
/// <summary>
/// 采购订单
/// </summary>
private void StockOrderEdit()
{
this.DisplayText = "StockOrder";
this.DisplayValue = "StockOrderId";
this.Ds = (new GetDBType()).GetDataBase().GetData(DALClassType.StockOrder);
DataBinding();
}
#endregion #region 默认属性设置
/// <summary>
/// 数据绑定
/// </summary>
private void DataBinding()
{
this.Properties.TextEditStyle = TextEditStyles.Standard; this.Properties.DisplayMember = this._displayText; this.Properties.ValueMember = this._displayValue; if (this.Ds != null)
this.DataSource = this.Ds.Tables[0];
else
this.DataSource = null;
}
#endregion }
选择类型为None的时候也可以在窗体Load事件中重新设置这些属性我想问的是,下面的代码写的合不合理,有没有更好的办法,先行谢过各位了,第一次封装控件
public partial class CustomGridLookUpEdit : GridLookUpEdit
{
#region 控件类别枚举
/// <summary>
/// 控件类别枚举
/// </summary>
public enum GridLookUpEditType
{
/// <summary>
/// none
/// </summary>
None,
/// <summary>
/// 客户信息
/// </summary>
Customer,
/// <summary>
/// 厂商信息
/// </summary>
Provider,
/// <summary>
/// 产品信息
/// </summary>
Prod,
/// <summary>
/// 销售单据
/// </summary>
SaleOrder,
/// <summary>
/// 采购单据
/// </summary>
StockOrder
}
#endregion #region 内部成员字段
/// <summary>
/// datasource
/// </summary>
private DataSet _ds;
/// <summary>
/// 显示的文本
/// </summary>
private string _displayText = null;
/// <summary>
/// 显示文本对应的值
/// </summary>
private string _displayValue = null;
/// <summary>
/// 控件类别
/// </summary>
private GridLookUpEditType _type = GridLookUpEditType.None;
#endregion #region 封装成员字段
/// <summary>
///
/// </summary>
public DataSet Ds
{
get { return _ds; }
set { _ds = value; }
}
/// <summary>
///
/// </summary>
public string DisplayText
{
get { return _displayText; }
set { _displayText = value; }
}
/// <summary>
///
/// </summary>
public string DisplayValue
{
get { return _displayValue; }
set { _displayValue = value; }
}
/// <summary>
/// 数据源
/// </summary>
public object DataSource
{
get { return this.Properties.DataSource; } set { this.Properties.DataSource = value; }
}
/// <summary>
///
/// </summary>
public GridLookUpEditType EditType
{
get { return _type; }
set
{
_type = value;
SetDisplayValue(_type);
}
}
#endregion #region 自动生成代码
/// <summary>
/// 构造
/// </summary>
public CustomGridLookUpEdit()
{
InitializeComponent(); }
/// <summary>
/// 重构
/// </summary>
/// <param name="container"></param>
public CustomGridLookUpEdit(IContainer container)
{
container.Add(this); InitializeComponent();
}
#endregion #region 选择对应类别
/// <summary>
///
/// </summary>
public void SetDisplayValue(GridLookUpEditType type)
{
switch (type)
{
case GridLookUpEditType.None: None(); break; //none
case GridLookUpEditType.Customer: CustomerEdit(); break; //客户信息
case GridLookUpEditType.Provider: ProviderEdit(); break; //厂商信息
case GridLookUpEditType.Prod: ProdEdit(); break; //产品信息
case GridLookUpEditType.SaleOrder: SaleOrderEdit(); break; //销售订单
case GridLookUpEditType.StockOrder: StockOrderEdit(); break; //采购订单
}
}
/// <summary>
/// none
/// </summary>
private void None()
{
this.Ds = null;
this.DisplayText = null;
this.DisplayValue = null;
DataBinding();
}
/// <summary>
/// 客户信息
/// </summary>
private void CustomerEdit()
{
this.DisplayText = "Customer";
this.DisplayValue = "CustomerId";
//(new GetDBType()).GetDataBase().GetData(DALClassType.Customer);这个是通过反射去数据层取得数据源
this.Ds = (new GetDBType()).GetDataBase().GetData(DALClassType.Customer);
DataBinding();
}
/// <summary>
/// 产商信息
/// </summary>
private void ProviderEdit()
{
this.DisplayText = "Provider";
this.DisplayValue = "ProviderId";
this.Ds = (new GetDBType()).GetDataBase().GetData(DALClassType.Provider);
DataBinding();
}
/// <summary>
/// 产品信息
/// </summary>
private void ProdEdit()
{
this.DisplayText = "Prod";
this.DisplayValue = "ProdId";
this.Ds = (new GetDBType()).GetDataBase().GetData(DALClassType.Prod);
DataBinding();
}
/// <summary>
/// 销售订单
/// </summary>
private void SaleOrderEdit()
{
this.DisplayText = "SaleOrder";
this.DisplayValue = "SaleOrderId";
this.Ds = (new GetDBType()).GetDataBase().GetData(DALClassType.SaleOrder);
DataBinding();
}
/// <summary>
/// 采购订单
/// </summary>
private void StockOrderEdit()
{
this.DisplayText = "StockOrder";
this.DisplayValue = "StockOrderId";
this.Ds = (new GetDBType()).GetDataBase().GetData(DALClassType.StockOrder);
DataBinding();
}
#endregion #region 默认属性设置
/// <summary>
/// 数据绑定
/// </summary>
private void DataBinding()
{
this.Properties.TextEditStyle = TextEditStyles.Standard; this.Properties.DisplayMember = this._displayText; this.Properties.ValueMember = this._displayValue; if (this.Ds != null)
this.DataSource = this.Ds.Tables[0];
else
this.DataSource = null;
}
#endregion }
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货