DevExpress控件使用之SearchLookUpEdit (多选)

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

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

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.Par
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
Delphi DevExpress控件Devexpress公司旗下的用户界面套包,包含了数据录入、图表、数据分析、导航、布局等多种控件,可以帮助开发者创建出优秀的用户体验和高影响力的业务解决方案。同时,Delphi DevExpress控件还可以利用开发者现有的VCL技能为未来构建下一代应用程序。\[1\]\[2\] 要在Delphi中使用DevExpress控件,您需要按照以下步骤进行操作: 1. 下载并安装DevExpress VCL Controls套件。 2. 在Delphi中创建一个新项目。 3. 在项目中添加DevExpress控件单元,例如dxShellControls。 4. 在您的代码中使用DevExpress控件的类和方法来实现您的需求。 需要注意的是,如果您在C++Builder项目中使用DevExpress控件,并且禁用了"Disable incremental linker"和"Link with runtime packages"选项,那么在重新构建应用程序时可能会出现错误。\[3\] 希望这些信息对您有所帮助! #### 引用[.reference_title] - *1* *3* [Delphi开发工具DevExpress VCL全新发布v21.1.5](https://blog.csdn.net/AABBbaby/article/details/120409370)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Delphi开发工具DevExpress VCL 2021年新版首发(附高速下载)](https://blog.csdn.net/AABBbaby/article/details/113307597)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值