DevExpress报表设计器自定义工具箱
来源:互联网 发布:java replaceall \\s 编辑:程序博客网 时间:2024/05/23 01:48
一直不太喜欢写一些东西,最近感觉记性大不如从前,还是把一些摸索的东西记录下来,方便以后使用。
DevExpress的报表设计器中原有的工具箱是支持删除,新增工具,但是工具箱却操作不方便,或者说在特定环境下,自己想要更改整个工具箱的布局,样式,以及操作方式的时候可以用以下方法实现:
1.拖拽一个ToolBoxControl
2.定义几个全局变量(多个事件中会用到)
private System.Drawing.Design.ToolboxItem itemToolLink = null;
private XRToolboxService xRToolboxService = null;
private Dictionary<DevExpress.XtraToolbox.ToolboxItem, System.Drawing.Design.ToolboxItem> toolboxItemsLink = new Dictionary<DevExpress.XtraToolbox.ToolboxItem, System.Drawing.Design.ToolboxItem>();
3.实现ToolBoxControl的MouseDown和MouseMove事件
private void toolboxControlReport_MouseDown(object sender, MouseEventArgs e)
{
DevExpress.XtraToolbox.ToolboxHitInfo hitInfo = toolboxControlReport.CalcHitInfo(e.Location);
if (hitInfo == null || !hitInfo.IsInItem || !toolboxItemsLink.TryGetValue(hitInfo.ItemInfo.Item, out itemToolLink))
{
itemToolLink = null;
}
}
private void toolboxControlReport_MouseMove(object sender, MouseEventArgs e)
{
if (itemToolLink != null)
{
toolboxControlReport.DoDragDrop(new DataObject(itemToolLink), DragDropEffects.Copy);
xRToolboxService.SetSelectedToolboxItem(itemToolLink);
xRToolboxService.SelectedToolboxItemUsed();
itemToolLink = null;
}
}
4.加载完成报表之后可执行如下代码
xRToolboxService = (XRToolboxService)reportDesigner1.ActiveDesignPanel.GetService(typeof(System.Drawing.Design.IToolboxService));
foreach (string text in xRToolboxService.CategoryNames)
{
DevExpress.XtraToolbox.ToolboxGroup group = new DevExpress.XtraToolbox.ToolboxGroup(text);
IDesignerHost designerHost = (IDesignerHost)reportDesigner1.ActiveDesignPanel.GetService(typeof(IDesignerHost));
System.Drawing.Design.ToolboxItem[][] array = XRToolboxService.GroupItemsBySubCategory(xRToolboxService.GetToolboxItems(text), designerHost);
System.Drawing.Design.ToolboxItem[][] array2 = array;
for (int i = 0; i < array2.Length; i++)
{
System.Drawing.Design.ToolboxItem[] array3 = array2[i];
for (int j = 0; j < array3.Length; j++)
{
DevExpress.XtraToolbox.ToolboxItem itemTool = new DevExpress.XtraToolbox.ToolboxItem();
itemTool.Name = itemTool.Caption = ((array3[j] is LocalizableToolboxItem) ? ((LocalizableToolboxItem)array3[j]).DisplayName : array3[j].DisplayName);
itemTool.Image = array3[j].Bitmap;
toolboxItemsLink.Add(itemTool, array3[j]);
group.Items.Add(itemTool);
}
}
toolboxControlReport.Groups.Add(group);
}
if (toolboxControlReport.Groups.Count != 0)
{
toolboxControlReport.SelectedGroupIndex = 0;
}
5.此时工具已经被正常加载到工具箱中,可实现手动拖拽等功能
- DevExpress报表设计器自定义工具箱
- Devexpress 报表 自定义纸张大小
- DevExpress报表设计之表格
- DevExpress报表
- DevExpress 采用二进制流保存模块,自定义Report报表
- .net web 开发平台- 自定义报表设计器 (web版)
- DevExpress 报表 格式化
- Devexpress 报表 一
- Devexpress 报表 显示
- Devexpress XtraReports报表教程
- DevExpress控件不在工具箱显示的解决办法
- 使用DevExpress.XtraReports.UI.XtraReport 设计报表的时候如何格式化字符串
- DevExpress 安装及报表开发
- DevExpress.XtraReports报表,动态设置报表布局
- DevExpress.XtraReports报表,动态设置报表布局
- DevExpress.XtraReports报表,动态设置报表布局
- DevExpress(11.1.8) 报表(web):创建报表
- ActiveReports报表设计器
- 数据压缩 实验六 MPEG音频编码实验
- 数据压缩 实验六 MPEG音频编码实验
- 单元最短路模板 dijistra
- redhat6.4桌面版
- Mac下配置maven
- DevExpress报表设计器自定义工具箱
- Array对象目录 总览概括
- 基础JavaScript(一)
- Python XML解析之SAX
- c3p0 JNDI
- log4j学习
- Object对象目录 总览概括
- 一个晚上写出来的C语言版生命游戏
- Property属性对象目录 总览概括