winform 中的字段验证

2024-02-10

winforms 中验证字段有快捷方式吗?例如,在保存记录之前需要填写特定的文本框。我总是做的是在保存之前首先以编程方式检查所有必填字段。例子:

protected bool CheckFields()
{
    bool isOk = false;
    if(textBox1.Text != String.Empty)
      {
          isOk = true;
      }
    return isOk;
} 

private void btnSave_Click(object sender, EventArgs e)
{
    if(CheckFields())
      {
          Save();// Some function to save record.
      }
}

winforms 中的 ASP.Net 中是否有 Validator 的对应部分?或者任何其他方式...


这是一种方法:

    private List<Control> m_lstControlsToValidate;
    private void SetupControlsToValidate()
    {
        m_lstControlsToValidate = new List<Control>();

        //Add data entry controls to be validated

        m_lstControlsToValidate.Add(sometextbox);
        m_lstControlsToValidate.Add(sometextbox2);

    }
   private void ValidateSomeTextBox()
   {
        //Call this method in validating event.
        //Validate and set error using error provider
   }

   Private void Save()
   {
        foreach(Control thisControl in m_lstControlsToValidate)
        {
            if(!string.IsNullOrEmpty(ErrorProvider.GetError(thisControl)))
            {                    
                //Do not save, show messagebox.
                return;
            }
        }
     //Continue save
   }

EDIT:

对于 m_lstControlsToValidate 中的每个控件,您需要编写将在 Validating 事件中触发的验证方法。

ErrorProvider.GetError(thisControl) 将返回一些错误文本或空字符串。空字符串意味着控制良好。否则,控件包含一些错误,我们将中止保存操作。

我们对 m_lstControlsToValidate 中的所有控件执行此操作。如果所有控件都没有错误,我们将继续保存,否则中止。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

winform 中的字段验证 的相关文章

  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • 如何使用 ICU 解析汉字数字字符?

    我正在编写一个使用 ICU 来解析由汉字数字字符组成的 Unicode 字符串的函数 并希望返回该字符串的整数值 五 gt 5 三十一 gt 31 五千九百七十二 gt 5972 我将区域设置设置为 Locale getJapan 并使用
  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • 堆栈溢出:堆栈空间中重复的临时分配?

    struct MemBlock char mem 1024 MemBlock operator const MemBlock b const return MemBlock global void foo int step 0 if ste
  • 将 VSIX 功能添加到 C# 类库

    我有一个现有的单文件生成器 位于 C 类库中 如何将 VSIX 项目级功能添加到此项目 最终目标是编译我的类库项目并获得 VSIX 我实际上是在回答我自己的问题 这与Visual Studio 2017 中的单文件生成器更改 https s
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co
  • 用于验证目的的动态查找方法

    我正在使用 Ruby on Rails 3 0 7 我想在运行时查找一些记录以进行验证 但为该查找方法传递 设置一个值 也就是说 在我的班级中 我有以下内容 class Group lt lt ActiveRecord Base valid

随机推荐

  • 迭代累积和,其中总和确定要添加的下一个位置

    我有一个 data table 如下 set seed 5 x lt data table x sample 1 20 15 gt x x 1 5 2 14 3 17 4 20 5 2 6 11 7 8 8 15 9 12 10 16 11
  • Maven 程序集:添加同一工件的不同版本

    我使用 Maven 程序集插件创建应用程序存档 我的 pom 中存在的所有依赖项都包含在内 没有任何问题 现在我需要包含同一工件的两个或多个版本 如果我在我的 pom 中放入
  • Codeigniter 2.1 $this->input->set_cookie($some_var);不工作

    我开始创建一个自定义库 我将加载该库来检查用户是否登录以及注册用户 注册尚未开始 但这并不重要 这是有问题的部分 它不会设置cookie this gt load gt helper cookie some value asd some c
  • Promise { } - 尝试等待 .map

    我在用 map绘制新对象并将旧价格添加到地图中 我将 Async Await 与我的数据图一起使用 这是我的代码的样子 let datasets await changes map async data gt let products le
  • 通过 TCP 连接到 DBus 服务

    我是进程间通信方面的新手 我需要你的帮助和清晰的解释 我有 2 个应用程序 其中一个是服务 一个是客户端 我使用 QT C 来编写它们 当他们在一台本地 PC 上工作时 一切都很好 但我需要把它们分开 所以 我在 IP 192 30 82
  • Href 和 Url.Content 有什么区别?

    Both Href and Url Content可用于解析虚拟路径 该路径相对于文件或文件夹的虚拟根路径 Href 和 Url Content 之间有什么区别 url content 不仅仅创建一个普通的 href 它还考虑应用程序的子
  • 在 Atom 中使用 Hydrogen 设置 Python 虚拟环境

    我正在从 VS Code 切换到 Atom 并且正在尝试为我的 python 项目设置一个虚拟环境 在 VS Code 中这很容易做到 我运行以下脚本 当我运行脚本时 它会自动开始使用新的环境 包含所有必需的包 python3 m venv
  • Android - 检测与特定 wifi ssid 断开连接的正确方法?

    我见过几个 BroadcastReciever 示例来检测 wifi 断开连接 但它们似乎都无法正常工作 例如 每次断开连接触发两次 并且没有提到检查 ssid 这是否可能 所以为了澄清一下 我想检测与特定 ssid 的断开连接 设备上实际
  • 更改格子图中条带上的文本

    如何更改格子图中显示的文本 例子 假设我有一个由 3 列组成的数据框测试 x 1 1 2 3 4 5 6 7 8 9 10 y 1 A A A A A B B B B B a 1 1 9952066 1 7292978 0 8789127
  • 使用标题转动用户位置注释

    我正在尝试更改我的应用程序中的用户注释 以便它显示通常的蓝点 但有一个三角形来显示用户面向的方向 我宁愿旋转用户注释而不是整个地图 这就是 MKUserTrackingModeFollowWithHeading 所做的 我有一个基本版本可以
  • Reflect.getOwnMetadata 不是最新 Aurelia 的 karma 函数

    更新到最新版本的 Aurelia 3 月更新 beta 1 1 4 后 每次运行 karma 测试时都会收到以下错误 Error Reflect getOwnMetadata is not a function Error loading
  • 如何解决 System.Text.Json.JsonException:在实体框架中检测到可能的对象循环? [复制]

    这个问题在这里已经有答案了 我有一个包含表 数据的数据库 因此我使用了数据库优先方法 使用以下命令来构建模型 dotnet ef dbcontext scaffold Server Database MyDb Trusted Connect
  • (简单)HTML属性是否允许在赋值之间有空格

    我正在将一些属性解析为字符串 因此我需要知道如何在 HTML XHTML 元素属性中使用空格 div width 150px div 这也正确吗 div width 150px div 如果有人知道使用 JavaScript 迭代属性及其值
  • gradle 构建中不需要的 tar、zip、jar 分发

    我正在做 gradle build 其中包括许多项目 当我跑步时gradle build命令它生成不需要的包 如 tar zip 那么我应该怎么做才能排除这些任务 我正在使用战争插件来生成战争 apply plugin war 我还使用以下
  • Android 调试技巧

    我的程序经常崩溃 我在 LogCat 中看不到任何内容 也无法在其他地方看到任何有用的信息来找出问题所在 我唯一看到的是某种例外 这是不可接受的 并且使得 Android 编程几乎不可能 我确信一定有一些额外的帮助来调试 但经过几周的搜索
  • 导入路径不能以“.ts”结尾 - NodeJS 和 Visual Code

    我在尝试构建一个简单的 NodeJS 应用程序时遇到错误 即使 Visual Code 提示错误 我的代码仍然运行 当我从 import 语句中删除 ts 扩展名时 出现找不到文件的错误 我正在使用 webpack 但这些文件来自服务器 这
  • >>'运算符[关闭]' aria-label='sql server中的无符号右移'>>>'运算符[关闭]'> sql server中的无符号右移'>>>'运算符[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 如何在sql server中编写无符号右移运算符 表达式就像value gt gt gt 0 这是例如 5381 gt
  • C++:使用“.”表达式和函数调用上的运算符

    我想知道使用成员运算符是否是一个好的做法 像这样 someVector segment getFirst segment getSecond normalize normalCCW 只是这样做是为了展示我想知道的两件不同的事情 即如果使用
  • 如何在CSS中引用带有空格的长类名?

    我正在尝试设计一些 Drupal 输出的样式 特别是 我试图引用一个具有超长名称 包括空格 的类 我不清楚这个的语法 请原谅我 我是 CSS 新手 看
  • winform 中的字段验证

    winforms 中验证字段有快捷方式吗 例如 在保存记录之前需要填写特定的文本框 我总是做的是在保存之前首先以编程方式检查所有必填字段 例子 protected bool CheckFields bool isOk false if te