C#.Net自定义控件 - GridPopupContainerEdit
DevExpress大家都熟悉吧!这是一款超炫超酷俺死心踏地顶礼膜拜的超牛组件。但是在开发应用中有些BT的功能DevExpress没实现出来,有些惭愧,比如这个在GridControl内显示的GridPopupContainerEdit
控件,DevExpress库没有!幸好有一天,我实现了她。

void repositoryItemPopupContainerEdit1_QueryResultValue(object sender, DevExpress.XtraEditors.Controls.QueryResultValueEventArgs e)
{
try
{//将选中的项目组合成字符串
string oldValue = e.Value.ToString();
string newValue = "";
foreach (CheckedListBoxItem o in chkStoveNoList.CheckedItems)
{
newValue = newValue "," o.Value;
}
if (newValue.ToString().Length > 0)
newValue = newValue.ToString().Substring(1, newValue.ToString().Length - 1);
if (oldValue != newValue)
{
e.Value = newValue;
}
}
catch { }
}
void repositoryItemPopupContainerEdit1_QueryPopUp(object sender, CancelEventArgs e)
{
//分解字符串,在选择列表内打勾显示
popCCStoveNo.Width = (sender as PopupContainerEdit).Width;
if (gridView1.IsValidRowHandle(gridView1.FocusedRowHandle))
{
DataRow row = gridView1.GetDataRow(gridView1.FocusedRowHandle);
string stoveNo = "," row["StoveNo"].ToString() ",";
//插入不存在炉号
string[] NOs = stoveNo.Split(new char[] { char.Parse(",") }, StringSplitOptions.RemoveEmptyEntries);
foreach (string no in NOs)
{
if (!StoveNoExists(chkStoveNoList.Items, no))
chkStoveNoList.Items.Add(no);
}
int i = 0;
foreach (CheckedListBoxItem no in chkStoveNoList.Items)
{
bool exists = stoveNo.IndexOf("," no.Value ",") >= 0;
chkStoveNoList.SetItemChecked(i, exists); //打勾显示
i ;
}
//设置下拉显示高度
int height = 20 * 10;
if (chkStoveNoList.Items.Count < 10)
height = 20 * chkStoveNoList.Items.Count 20;
popCCStoveNo.Height = height;
}
}
// 来源:www.CSFramework.com, C/S结构框架学习网
private void Form1_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("StoveNo", typeof(string));
dt.Rows.Add(new object[] { "A,B,C" });
dt.Rows.Add(new object[] { "AA,BB,CC" });
dt.Rows.Add(new object[] { "AAA,BBB,CCC" });
gridControl1.DataSource = dt;
chkStoveNoList.Items.Add("A");
chkStoveNoList.Items.Add("Aa");
chkStoveNoList.Items.Add("AA");
chkStoveNoList.Items.Add("D");
chkStoveNoList.Items.Add("C");
repositoryItemPopupContainerEdit1.QueryPopUp = new CancelEventHandler(repositoryItemPopupContainerEdit1_QueryPopUp);
repositoryItemPopupContainerEdit1.QueryResultValue = new DevExpress.XtraEditors.Controls.QueryResultValueEventHandler(repositoryItemPopupContainerEdit1_QueryResultValue);
}
// 来源:www.CSFramework.com, C/S结构框架学习网
{
DataTable dt = new DataTable();
dt.Columns.Add("StoveNo", typeof(string));
dt.Rows.Add(new object[] { "A,B,C" });
dt.Rows.Add(new object[] { "AA,BB,CC" });
dt.Rows.Add(new object[] { "AAA,BBB,CCC" });
gridControl1.DataSource = dt;
chkStoveNoList.Items.Add("A");
chkStoveNoList.Items.Add("Aa");
chkStoveNoList.Items.Add("AA");
chkStoveNoList.Items.Add("D");
chkStoveNoList.Items.Add("C");
repositoryItemPopupContainerEdit1.QueryPopUp = new CancelEventHandler(repositoryItemPopupContainerEdit1_QueryPopUp);
repositoryItemPopupContainerEdit1.QueryResultValue = new DevExpress.XtraEditors.Controls.QueryResultValueEventHandler(repositoryItemPopupContainerEdit1_QueryResultValue);
}
// 来源:www.CSFramework.com, C/S结构框架学习网
参考文档:
C#.Net用户自定义控件制作教程
C#.Net自定义控件设置图标ToolboxBitmap的用法
C#.Net自定义控件 - GridPopupContainerLookup
C#.Net自定义控件 - CheckedListBoxEditor(支持多值勾选及新增)
C#.NET百度地图定位API解决方案|C/S开发框架
百度地图API - 地址标注与位置显示(C#.NET)-C/S开发框架
C#.NET百度地图定位API解决方案
标签:C#.Net组件开发 - 属性窗体内显示自定义名称
C#.Net开发继承UITypeEditor接口的自定义属性编辑器
FastReport.NET自动文本宽度+自动换行+自动行高|C/S开发框架
FastReport.NET2023破解版去除水印DEMO VERSION (2025.1.14/2023.2.18版本)|C/S开发框架
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
.NET C/S架构软件用户授权设计方案(mac地址+白名单用户)|C/S开发框架
企业级C/S系统快速开发框架(Winform+.NET8+EFCore)|C/S开发框架
.NETCore WebApi运行报错:System.AggregateException:“Some services are not able to be constructed|C/S开发框架
C#.NET各版本常用语法糖大全(C#3~C#10)|C/S开发框架
C#.Net用户自定义控件制作教程
C#.Net自定义控件设置图标ToolboxBitmap的用法
C#.Net自定义控件 - GridPopupContainerLookup
C#.Net自定义控件 - CheckedListBoxEditor(支持多值勾选及新增)
C#.NET百度地图定位API解决方案|C/S开发框架
百度地图API - 地址标注与位置显示(C#.NET)-C/S开发框架
C#.NET百度地图定位API解决方案
标签:C#.Net组件开发 - 属性窗体内显示自定义名称
C#.Net开发继承UITypeEditor接口的自定义属性编辑器
FastReport.NET自动文本宽度+自动换行+自动行高|C/S开发框架
FastReport.NET2023破解版去除水印DEMO VERSION (2025.1.14/2023.2.18版本)|C/S开发框架
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
.NET C/S架构软件用户授权设计方案(mac地址+白名单用户)|C/S开发框架
企业级C/S系统快速开发框架(Winform+.NET8+EFCore)|C/S开发框架
.NETCore WebApi运行报错:System.AggregateException:“Some services are not able to be constructed|C/S开发框架
C#.NET各版本常用语法糖大全(C#3~C#10)|C/S开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
