SearchLookUpEdit控件既支持类似GridControl强大的功能,又被设计得十分简洁, 对于简化界面非常有帮助。
如下图所示,既要实现下拉选择条目(item),又要自定义运行、编辑、删除列功能按钮。如果不做特殊处理,每当单击自定义功能按钮时,弹出的列表就会关闭。
所以,解决问题的第一步是要阻止单击时,下拉接口的关闭。注册SearchLookUpEdit控件的QueryCloseUp事件,并设置e.Cancel =true(e表示下拉窗口的取消事件参数CancelEventArgs),这样只要单击下拉窗体,窗体不会关闭;单击其他位置,则会关闭。
但这样还是不行,仅仅是想单击自定义功能按钮不关闭,单击下拉列表的其他列也同样关闭。这得在SearchLookUpEdit控件的视图View中注册RowCellClick或RowClick事件,来判断是否关闭,并通过变量传递给e.Cancel。关键代码如下:
private bool _isCloseSearchLookUp = false; private void RepositoryItemSearchLookUpEdit1View_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e) { //对_isCloseSearchLookUp 进行判断和赋值 //… } //下拉窗口关闭事件 private void RepSearchLookUpScheme_QueryCloseUp(object sender, CancelEventArgs e) { e.Cancel = _isCloseSearchLookUp; }