DevExpress控件使用之SearchLookUpEdit (多选)

本文详细介绍了如何使用DevExpress的SearchLookUpEdit控件实现多选功能,包括设置多选属性、处理弹出窗体事件、按钮事件、关闭事件、自定义显示内容和值改变事件。同时,提到了选中事件的处理以及FunctionHelper类的应用。
摘要由CSDN通过智能技术生成

效果图(可多选,弹出窗体添加控件)

弹出窗体界面
选中数据后展示

SearchLookUpEdit(多选)

控件的属性和事件使用
1.设置多选属性

这里写图片描述

//---------------需要的一些属性和方法------------------
//楼盘内容类
public class LookUpMultSelectValues
{
    public string FindText { get; set; }
    public List<string> SelectedValues { get; set; }
    public List<string> SelectedDisplays { get; set; }
}
//楼盘内容存储变量
private List<LookUpMultSelectValues> luValues = new List<LookUpMultSelectValues>();
//选择楼盘时,动态显示选中个数
public LabelControl searchResult = new LabelControl() { Text = "已选择 0 个楼盘" };
//楼盘选中的数据去重
private List<string>[] GetLuValues()
 {
     List<string> r = new List<string>();
     foreach (var a in luValues)
     {
         r.AddRange(a.SelectedValues);
     }

     List<string> b = new List<string>();
     foreach (var a in luValues)
     {
         b.AddRange(a.SelectedDisplays);
     }
     return new[] { r.Distinct().ToList<string>(), b.Distinct().ToList<string>() };
 }
2.弹出窗体事件

这里写图片描述

//弹出窗体,并动态添加控件(确认按钮,取消按钮,选中结果显示标签)
//窗体弹出事件
private void sleEstate_Popup(object sender, EventArgs e)
{
    //得到当前SearchLookUpEdit弹出窗体
    PopupSearchLookUpEditForm form = (sender as IPopupControl).PopupWindow as PopupSearchLookUpEditForm;
    SearchEditLookUpPopup popup = form.Controls.OfType<SearchEditLookUpPopup>().FirstOrDefault();
    LayoutControl layout = popup.Controls.OfType<LayoutControl>().FirstOrDefault();
    //如果窗体内空间没有确认按钮,则自定义确认simplebutton,取消simplebutton,选中结果label
    if (layout.Controls.OfType<Control>().Where(ct => ct.Name == "btOK").FirstOrDefault() == null)
    {
        //得到空的空间
        EmptySpaceItem a = layout.Items.Where(it => it.TypeName == "EmptySpaceItem").FirstOrDefault() as EmptySpaceItem;

        //得到取消按钮,重写点击事件
        Control clearBtn = layout.Controls.OfType<Control>().Where(ct => ct.Name == "btClear").FirstOrDefault();
        LayoutControlItem clearLCI = (LayoutControlItem)layout.GetItemByControl(clearBtn);
        clearBtn.Click += clearBtn_Click;

        //添加一个simplebutton控件(确认按钮)
        LayoutControlItem myLCI = (LayoutControlItem)clearLCI.Owner.CreateLayoutItem(clearLCI.Parent);
        myLCI.TextVisible = false;
        SimpleButton btOK = new SimpleButton() { Name = "btOK", Text = "确定" };
        btOK.Click += btOK_Click;
        myLCI.Control = btOK;
        myLCI.SizeConstraintsType = SizeConstraintsType.Custom;//控件的大小设置为自定义
        myLCI.MaxSize = clearLCI.MaxSize;
        myLCI.MinSize = clearLCI.MinSize;
        myLCI.Move(clearLCI, DevExpress.XtraLayout.Utils.InsertType.Left);

        //添加一个label控件(选中结果显示)
        LayoutControlItem msgLCI = (LayoutControlItem)clearLCI.Owner.CreateLayoutItem(a.Parent);
        msgLCI.TextVisible = false;
        msgLCI.Control = searchResult;
        msgLCI.Move(a, De
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值