提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:龚雪|2024-10-08 13:45:34.810|阅读 12 次
概述:本文主要为大家介绍如何用DevExpress WinForms中热门的数据网格组件完成数据输入的验证,欢迎下载最新版体验~
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
本教程介绍DevExpress WinForm的Data Grid控件是如何利用网格组件完成数据输入验证的。
P.S:DevExpress WinForms拥有180+组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!
获取DevExpress WinForms v24.1正式版下载
DevExpress技术交流群10:532598169 欢迎一起进群讨论
默认情况下,DevExpress WinForm网格控件启用了内置数据类型验证。如果在绑定到数字数据字段的列中输入字符串值,然后按ENTER键或尝试将焦点从单元格移开,则网格将验证数据输入并引发错误,因为字符串无法转换为数字值。将鼠标悬停在错误图标上,可以看到相同的错误消息。
更正输入的值或放弃更改来继续使用网格控件,要取消更改,请按ESCAPE。
要手动指定默认错误消息,请执行以下操作。
1. 处理视图的事件。
2. 在事件处理程序中,使用属性检查焦点列。
3. 尝试将事件的参数转换为所需的类型。
4. 如果该值不能转换,将参数设置为false,并指定自定义的属性值。
C#
private void gridView1_ValidatingEditor(object sender, BaseContainerValidateEditorEventArgs e) { GridView view = sender as GridView; if (view.FocusedColumn.FieldName == "UnitPrice") { double price = 0; if (!Double.TryParse(e.Value as String, out price)) { e.Valid = false; e.ErrorText = "Only numeric values are accepted."; } } }
运行应用程序,看看验证机制现在是如何显示自定义的错误消息的。
要验证数据,请执行以下操作:
1. 处理相同的事件。
2. 若要在特定列中只允许正数值,请检查转换值是否大于0。
3. 如果不是,将 参数设置为false并指定您的自定义错误消息。
C#
private void gridView1_ValidatingEditor(object sender, BaseContainerValidateEditorEventArgs e) { GridView view = sender as GridView; if (view.FocusedColumn.FieldName == "UnitPrice") { double price = 0; if (!Double.TryParse(e.Value as String, out price)) { e.Valid = false; e.ErrorText = "Only numeric values are accepted."; } else if (price <= 0) { e.Valid = false; e.ErrorText = "The unit price must be positive."; } } }
如果运行该应用程序,将看到在尝试向单元格中输入零时出现指定的错误消息。
要自定义显示错误的方式,请执行以下操作。
1. 处理视图的事件。
2. 在事件处理程序中,显示带有属性值的消息框。
3. 要禁用默认的错误图标和工具提示,请将参数设置为。
C#
private void gridView1_InvalidValueException(object sender, InvalidValueExceptionEventArgs e) { MessageBox.Show(this, e.ErrorText, "Invalid Value", MessageBoxButtons.OK, MessageBoxIcon.Error); e.ExceptionMode = ExceptionMode.NoAction; }
DevExpress WinForms网格控件现在使用消息框通知您有关错误的信息。
如果一个值的有效性取决于同一行中的其他值,则可以通过处理事件启用行验证。
例如,确保一列中的值大于另一列中的值。
C#
private void gridView1_ValidateRow(object sender, DevExpress.XtraGrid.Views.Base.ValidateRowEventArgs e) { GridView view = sender as GridView; GridColumn colUnitsInStock = view.Columns["UnitsInStock"]; GridColumn colUnitsOnOrder = view.Columns["UnitsOnOrder"]; double unitsInStock = Convert.ToDouble(view.GetRowCellValue(view.FocusedRowHandle, colUnitsInStock)); double unitsOnOrder = Convert.ToDouble(view.GetRowCellValue(view.FocusedRowHandle, colUnitsOnOrder)); if (unitsInStock < unitsOnOrder) { view.SetColumnError(colUnitsInStock, "The Units On Order value should be less than this value."); view.SetColumnError(colUnitsOnOrder, "This value should be less than the Units In Stock value."); view.SetColumnError(null, "Invalid data"); e.Valid = false; e.ErrorText = "'Units On Order' and 'Units In Stock' values are not consistent."; } }
运行应用程序,输入无效值并尝试将焦点切换到另一行。此时将进行行验证,并调用带有指定错误文本的默认错误对话框。
单击Yes,然后将鼠标悬停在错误图标上,来查看为各个列指定的错误消息。
要在验证行时禁用默认对话框窗口,请处理事件并将参数设置为。
C#
private void gridView1_InvalidRowException(object sender, DevExpress.XtraGrid.Views.Base.InvalidRowExceptionEventArgs e) { e.ExceptionMode = ExceptionMode.NoAction; }
现在当输入不正确的值时,消息将被抑制,但是您仍然可以在数据单元格和行指示符区域中看到相同的错误图标。
更多产品资讯及授权,欢迎“”!
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:慧都网本文将探讨如何使用 Spire.XLS for .NET 在 C# 程序中导入 Excel 数据到数据库以及导出数据库到 Excel 文件,实现数据在 Excel 和数据库之间无缝流转。
在本文中,我们将向您展示如何逐步执行此操作,告诉您什么是 SCORM,为什么需要使用它,并列出我们测试过的最佳 SCORM 转换工具之一——iSpring Suite。
本文主要介绍如何使用Kendo UI for Angular组件的ListView来构建带有图表的仪表板,欢迎下载新版控件体验!
在本文中,您将学习如何使用Spire.PDF for .NET在 C# 中向 PDF 文档添加页码。
行业领先的界面控件开发包,帮助企业构建卓越应用!
DevExpress DXperience Subscription高性价比的企业级.NET用户界面套包,助力企业创建卓越应用!
DevExpress WinForms Subscription为Windows Forms平台创建具有影响力的业务解决方案,高性价比WinForms界面控件套包。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢