热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C#技术深度解析:Infragistics组件库实战

本文详细探讨了如何在C#中使用Infragistics组件库解决常见的开发问题,包括工具栏按钮禁用、Grid中的时间记录及样式设置、以及Excel导出功能的实现。

工具栏功能配置

// 禁用工具栏按钮
tool.SharedProps.Enabled = false;

通过设置 Enabled 属性为 false,可以轻松禁用工具栏中的特定按钮,确保用户不会误操作。

Grid 控件高级应用

// 在 Grid 中记录时间
// 推荐在 SQL Server 中使用字符字段存储时间(未经过深入测试,但字符字段是可行的)
// 设置 Grid 的列样式为 Time 或 TimeWithSpin
// 对 Grid 列进行排序
// 首先将所有列的 VisiblePosition 设置为 0,然后重新设置每一列的位置,确保按从前到后的顺序排列
ltGrid1.DisplayLayout.Override.AllowUpdate = Infragistics.Win.DefaultableBoolean.False;
// 禁止行内换行
ltGrid1.DisplayLayout.Override.CellMultiLine = Infragistics.Win.DefaultableBoolean.False;
// 在多层表格中,第二层表格不显示列头,第一层表格仅在首行显示列头
ltGrid1.DisplayLayout.Bands[0].Override.HeaderPlacement = HeaderPlacement.FixedOnTop;
ltGrid1.DisplayLayout.Bands[1].ColHeadersVisible = false;
// 新绑定的数据列默认隐藏
ltGrid1.DisplayLayout.NewColumnLoadStyle = NewColumnLoadStyle.Hide;
// 禁用特定列的排序功能
ltGrid1.DisplayLayout.Bands[0].Columns["总库存"].SortIndicator = SortIndicator.Disabled;
// 在布尔类型列上显示全选按钮
ultraGridColumn423.Header.CheckBoxVisibility = Infragistics.Win.UltraWinGrid.HeaderCheckBoxVisibility.Always;
// 最后一列自动填充 Grid
ltGrid1.DisplayLayout.AutoFitStyle = AutoFitStyle.ExtendLastColumn;
// 显示合计信息
summarySettings1.DisplayFormat = "{0}";
summarySettings1.GroupBySummaryValueAppearance = appearance2;
summarySettings1.ShowCalculatingText = Infragistics.Win.DefaultableBoolean.False;
summarySettings1.SummaryDisplayArea = Infragistics.Win.UltraWinGrid.SummaryDisplayAreas.BottomFixed;
ultraGridBand1.Summaries.AddRange(new Infragistics.Win.UltraWinGrid.SummarySettings[] {summarySettings1});
ultraGridBand1.SummaryFooterCaption = "";
// 获取 Grid 中过滤后的行// 设置单元格可编辑性
ltGrid1.DisplayLayout.Bands[0].Columns[0].CellActivation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
// 设置单元格背景颜色
ltGrid1.DisplayLayout.Bands[0].Columns[0].CellAppearance.BackColor = Color.Aqua;
// 启用树形结构显示
grid1.DisplayLayout.ViewStyle = ViewStyle.MultiBand;
// 设置最大层级数
grid1.DisplayLayout.MaxBandDepth = 2;
// 展开和折叠树形结构
foreach (var row in ltGrid1.Rows)
{
row.Expanded = true;
row.ExpandAll();
row.CollapseAll();
}

以上代码展示了如何在 Grid 中实现多种复杂的功能,包括时间记录、列排序、单元格编辑性控制等。

Excel 文件导出

// 弹出保存对话框,获取文件保存路径
string fileName = "";
SaveFileDialog dialog = new SaveFileDialog();
dialog.FileName = txtAssmItemNoPrefix.Text; // 默认文件名
dialog.Filter = "Excel Worksheets|*.xls"; // 文件类型过滤器
if (dialog.ShowDialog() == DialogResult.OK) fileName = dialog.FileName;
dialog.Dispose();
// 将 Excel 模板从资源文件加载到指定路径
var buffer = Properties.Resources.Excel模板;
using (Stream output = File.OpenWrite(fileName))
{
output.Write(buffer, 0, buffer.Length);
}
// 加载 Excel 工作簿
Workbook workbook = Workbook.Load(fileName);
// 选择第一个工作表
Worksheet sheetHeader = workbook.Worksheets[0];
// 移除现有合并单元格
sheetHeader.MergedCellsRegions.Remove(sheetHeader.Rows[0].GetCellAssociatedMergedCellsRegion(0));
// 添加新的合并单元格
WorksheetMergedCellsRegion sheetRegion = sheetHeader.MergedCellsRegions.Add(0, 0, 0, 12);
// 设置合并单元格的值
sheetRegion.Value = "标题1";
// 设置水平对齐方式
sheetRegion.CellFormat.Alignment = HorizontalCellAlignment.Center;
// 设置垂直对齐方式
sheetRegion.CellFormat.VerticalAlignment = VerticalCellAlignment.Center;
// 开启自动换行
sheetRegion.CellFormat.WrapText = ExcelDefaultableBoolean.True;
// 调整行高
sheetHeader.Rows[1].Height = sheetHeader.Rows[1].Height * 3;
// 设置单元格值
sheetHeader.Rows[1].Cells[1].Value = DateTime.Now; // 订货日期
sheetHeader.Rows[1].Cells[2].Value = "文字"; // 销售员
// 设置单元格对齐方式
sheetHeader.Rows[1].Cells[2].CellFormat.Alignment = HorizontalCellAlignment.Center;
sheetHeader.Rows[1].Cells[2].CellFormat.VerticalAlignment = VerticalCellAlignment.Center;
// 开启自动换行
sheetHeader.Rows[1].Cells[2].CellFormat.WrapText = ExcelDefaultableBoolean.True;
// 保存 Excel 文件
workbook.Save(fileName);

本文通过详细的代码示例,展示了如何使用 Infragistics 组件库在 C# 中实现工具栏、Grid 和 Excel 导出功能,帮助开发者提高开发效率和用户体验。


推荐阅读
  • 目录介绍01.CoordinatorLayout滑动抖动问题描述02.滑动抖动问题分析03.自定义AppBarLayout.Behavior说明04.CoordinatorLayo ... [详细]
  • 利用Java与Tesseract-OCR实现数字识别
    本文深入探讨了如何利用Java语言结合Tesseract-OCR技术来实现图像中的数字识别功能,旨在为开发者提供详细的指导和实践案例。 ... [详细]
  • Java并发编程深入探讨:对象组合与线程安全
    本文详细介绍了如何利用现有线程安全组件构建大规模并发应用程序,探讨了设计线程安全类的关键要素,并提供了多种确保线程安全的技术方案。 ... [详细]
  • 深入探讨PHP中的输出缓冲技术(Output Buffering)
    本文深入解析了PHP中输出缓冲(Output Buffering)的原理及其在Web开发中的应用,特别是如何通过输出缓冲技术有效管理HTTP头部信息,提高代码的灵活性与健壮性。 ... [详细]
  • 本文详细记录了 Docker 的初学体验,从基础安装到运行第一个容器,帮助新手快速掌握 Docker 的核心概念和操作。 ... [详细]
  • .NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了
    .NETCore中的一个接口多种实现的依赖注入与动态选择看这篇就够了最近有个需求就是一个抽象仓储层接口方法需要SqlServer以及Oracle两种实现方式,为了灵活我在依赖注入的 ... [详细]
  • 本文介绍了如何使用外向烧鹅IO库来封装GET请求的具体步骤,包括库的安装与配置、请求拦截器的设置以及如何在Vue项目中调用这些封装好的请求方法。 ... [详细]
  • 请看|差别_Android 6.0 运行时权限处理解析
    请看|差别_Android 6.0 运行时权限处理解析 ... [详细]
  • MySQL中的Anemometer使用指南
    本文详细介绍了如何在MySQL环境中部署和使用Anemometer,以帮助开发者有效监控和优化慢查询性能。通过本文,您将了解从环境准备到具体配置的全过程。 ... [详细]
  • 本文介绍了K近邻分类器的实现及其在工程与科学研究中的广泛应用。该算法采用欧几里得距离作为相似度量标准,并提供了一个包含两个预设聚类示例的CSV文件,旨在通过这些聚类对新的数据点进行分类。 ... [详细]
  • 车载T-BOX智能网联终端的设计与实现
    本文介绍了一款基于瑞萨RH850微控制器、TICC2640R2F蓝牙微控制器和高通MDM9628处理器的T-BOX车载终端的设计。该终端通过集成CAN总线、GPS定位、数据加密、蓝牙通信和LTE无线数据传输技术,实现了车辆信息的高效采集与云端通信,支持远程车辆控制和诊断等功能。 ... [详细]
  • 本文深入探讨了在Java编程语言中,如何使用`org.apache.polygene.api.association.AssociationDescriptor.qualifiedName()`方法,并提供了多个实际应用的代码示例。这些示例源自GitHub、StackOverflow和Maven等知名平台,旨在帮助开发者更好地理解和应用这一方法。 ... [详细]
  • 博主从零开始学习HTML(入门基础)
    从零开始学习HTML(入门基础)互联网三大基石HTTP协议URL:统一资源定位符HTML:超文本标记语言HTML的Head标签中的常用元素<!--告知 ... [详细]
  • 本文探讨了在Git子模块目录中运行pre-commit时遇到的错误,并提供了一种通过Docker环境解决此问题的方法。 ... [详细]
  • DataList内容详解
    DataList是另一种显示数据控件,它与GridView不同的是,它全部使用模板进行设计,并且DataList的模板是对整行设置 ... [详细]
author-avatar
觉悟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有