#region
|
|
using System;
|
using System.ComponentModel;
|
using System.Data;
|
using System.Drawing.Design;
|
using System.Windows.Forms;
|
using DevExpress.XtraEditors;
|
|
#endregion
|
|
namespace CSFrameworkV5.Library.UserControls
|
{
|
/// <summary>
|
/// 编号-标题自定义控件.
|
/// </summary>
|
public partial class ucValueEdit : UserControl
|
{
|
private DataTable _ItemsData;
|
private string[] _ItemsValue = { };
|
private string _Seperator = "-";
|
|
public ucValueEdit()
|
{
|
InitializeComponent();
|
|
_ItemsData = new DataTable();
|
_ItemsData.Columns.Add("Value", typeof(string));
|
_ItemsData.Columns.Add("Name", typeof(string));
|
|
_InnerLookUpEdit.Properties.DisplayMember = "Name";
|
_InnerLookUpEdit.Properties.ValueMember = "Value";
|
_InnerLookUpEdit.Properties.DataSource = _ItemsData;
|
}
|
|
[Category("Appearance")]
|
[Description("嵌套的LookUpEdit控件")]
|
public LookUpEdit InnerLookupEdit => _InnerLookUpEdit;
|
|
[DesignerSerializationVisibility(
|
DesignerSerializationVisibility.Content)]
|
[Editor("System.Windows.Forms.Design.StringArrayEditor, System.Design",
|
typeof(UITypeEditor))]
|
[Category("Appearance")]
|
[Description("自定义数据列表.如: A - 类型A ")]
|
public string[] Items
|
{
|
get => _ItemsValue;
|
set => SetItems(value);
|
}
|
|
[DefaultValue("-")]
|
[Description("值与显示名称中间的分隔符.如:A - 类型A")]
|
public string ItemValueSeperator
|
{
|
get => _Seperator;
|
set => _Seperator = value;
|
}
|
|
private void RefreshDataSource()
|
{
|
_InnerLookUpEdit.Properties.DataSource = null;
|
_InnerLookUpEdit.Properties.DataSource = _ItemsData;
|
}
|
|
/// <summary>
|
/// 将String[]转换为DataTable
|
/// </summary>
|
/// <param name="values"></param>
|
private void SetItems(string[] values)
|
{
|
_ItemsValue = values;
|
_ItemsData.Rows.Clear();
|
|
if (values.Length == 0) return;
|
|
string[] P;
|
foreach (var item in values)
|
{
|
var V = "";
|
var N = "";
|
if (item.Trim() != "")
|
{
|
P = item.Split(char.Parse(_Seperator));
|
V = P.Length >= 1 ? P[0] : "";
|
N = P.Length == 2 ? P[1] : "";
|
}
|
|
_ItemsData.Rows.Add(V, N);
|
}
|
|
RefreshDataSource();
|
}
|
|
private void ucValueEdit_Load(object sender, EventArgs e)
|
{
|
SetItems(_ItemsValue);
|
}
|
|
private void ucValueEdit_SizeChanged(object sender, EventArgs e)
|
{
|
_InnerLookUpEdit.Width = Width;
|
Height = _InnerLookUpEdit.Height;
|
}
|
}
|
}
|