/*******************************************************************************
* Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
* 类的信息:
* 1.程序名称:C_CheckedListBoxEx.cs
* 2.功能描述:扩展的复选框列表控件:可以多项选择
* 编辑履历:
* 作者 日期 版本 修改内容
* 陈晓野 2014/09/04 1.00 新建
*******************************************************************************/
using System.Collections.Generic;
using System.ComponentModel;
using System.Security.Permissions;
using System.Text;
using System.Windows.Forms;
namespace Dongke.IBOSS.PRD.Basics.BaseControls
{
///
/// 扩展的复选框列表控件:可以多项选择
///
public partial class C_CheckedListBoxEx : DKCheckedListBox
{
#region 委托声明
///
/// 表示将处理 System.Windows.Forms.CheckedListBox 控件或 System.Windows.Forms.ListView 控件的 ItemChecked 事件的方法。
///
/// 事件源
/// 包含事件数据的 System.Windows.Forms.ItemCheckEventArgs
public delegate void ItemCheckedEventHandler(object sender, ItemCheckEventArgs e);
#endregion
#region 事件声明
///
/// 当某项的选中状态更改后发生
///
private ItemCheckedEventHandler _onItemChecked;
///
/// 当某项的选中状态更改后发生
///
public event ItemCheckedEventHandler ItemChecked
{
add
{
this._onItemChecked = (ItemCheckedEventHandler)System.Delegate.Combine(this._onItemChecked, value);
}
remove
{
this._onItemChecked = (ItemCheckedEventHandler)System.Delegate.Remove(this._onItemChecked, value);
}
}
#endregion
#region 常量
#endregion
#region 成员变量
#endregion
#region 构造函数
///
/// 构造函数
///
public C_CheckedListBoxEx()
{
InitializeComponent();
this.CheckOnClick = true;
}
#endregion
#region 属性
///
/// 获取或设置控件的数据源
///
public new object DataSource
{
get
{
return base.DataSource;
}
set
{
base.DataSource = value;
}
}
///
/// 获取或设置一个字符串,该字符串指定要显示其内容的列表框中所含对象的属性
///
public new string DisplayMember
{
get
{
return base.DisplayMember;
}
set
{
base.DisplayMember = value;
}
}
///
/// 获取或设置一个字符串,该字符串指定要从中取值的数据源的属性
///
public new string ValueMember
{
get
{
return base.ValueMember;
}
set
{
base.ValueMember = value;
}
}
///
/// 获取或者设定选中的项目的集合例如返回1,2,3
///
[Description("获取或者设定选中的项目的集合.例如返回\"1,2,3\"")]
public string SelectedArray
{
get
{
string array = "";
foreach (CheckedBoxListItem item in this.CheckedItems)
{
array += "," + item.Value;
}
array = array.Substring(1);
return array;
}
}
#endregion
#region 事件处理
#endregion
#region 公有方法/函数
///
/// 返回指定项的成员属性的值
///
/// 项
/// 值
public virtual object GetItemValue(object item)
{
if (this.DataManager != null)
{
string dataMember = this.ValueMember;
if (dataMember == null)
{
dataMember = string.Empty;
}
int num = dataMember.LastIndexOf(".");
if (num != -1)
{
dataMember = dataMember.Substring(num + 1);
}
return this.FilterItemOnProperty(item, dataMember);
}
return null;
}
///
/// 返回选中项的文本表示形式
///
/// 选中项的文本
public virtual List GetCheckedTexts()
{
List checkedTexts = new List();
foreach (object item in this.CheckedItems)
{
checkedTexts.Add(this.GetItemText(item));
}
return checkedTexts;
}
///
/// 返回选中项的成员属性的值
///
/// 选中项的值
public virtual List