有没有更简单的方法来处理复选框?

2024-05-20

在 vb.net 中,我有一个包含一组四个复选框的表单。每个复选框都表示(选中时)用户想要向其订单添加特殊指令。代码如下所示:

        If SpecialInstruction1CheckBox.Checked Then
            AddSpecialInstruction(SPECIAL_INSTRUCTION_1_String)
        End If
        If SpecialInstruction2CheckBox.Checked Then
            AddSpecialInstruction(SPECIAL_INSTRUCTION_2_String)
        End If
        If SpecialInstruction3CheckBox.Checked Then
            AddSpecialInstruction(SPECIAL_INSTRUCTION_3_String)
        End If
        If SpecialInstruction4CheckBox.Checked Then
            AddSpecialInstruction(SPECIAL_INSTRUCTION_4_String)
        End If

我有一种感觉,这段代码不必要地冗长,感觉重复,可以简化。我将如何去做这件事,或者这并不像我感觉的那样“错误”?


第一个问题是您的特殊指令不应存储在单独的变量中。它们应该存储在数组或其他类型的列表中。然后你可以通过索引访问它们(例如specialInstructions(1)).

然后您可以按索引循环遍历复选框,如下所示:

For i As Integer = 1 to 4
    Dim box As CheckBox = DirectCast(Me.Controls("SpecialInstruction" & i.ToString() & "CheckBox"), CheckBox)
    If box.Checked Then list.Add(specialInstructions(i))
Next

或者,您可以将对复选框的引用存储在数组中,然后更轻松地循环它们,例如:

Dim checkBoxes() As CheckBox = {
    SpecialInstruction1CheckBox,
    SpecialInstruction2CheckBox,
    SpecialInstruction3CheckBox,
    SpecialInstruction4CheckBox}

' ...

For i As Integer = 0 to checkBoxes.Length - 1
    If checkBoxes(i).Checked Then list.Add(specialInstructions(i))
Next

另一种选择是将特殊指令存储在Tag每个复选框的属性,那么您可以从控件中检索值,如下所示:

For Each i As CheckBox In checkBoxes
    If i.Checked Then list.Add(i.Tag)
Next

但只有当您不需要在代码中的其他地方重用这些特殊指令值时,这才有意义。

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

有没有更简单的方法来处理复选框? 的相关文章

  • 如何有效地从 DB2 表中删除所有行

    我有一个大约有 50 万行的表 我想删除所有行 如果我做简单的delete from tbl 事务日志已满 我不关心这种情况下的事务 无论如何我都不想回滚 我可以删除许多事务中的行 但是有更好的方法吗 如何有效地从 DB2 中的表中删除所有
  • 对于双核手机,availableProcessors() 返回 1

    我最近购买了一部 Moto Atrix 2 手机 当我尝试查看手机中的处理器规格时 Runtime getRuntime availableProcessors 返回 1 proc cpuinfo 也仅包含有关处理器 0 的信息 出于好奇
  • 比较运算符性能 <= 与 !=

    让我们首先声明代码可读性胜过微优化 我们应该将其留给编译器 这只是一个奇怪的案例 具体细节似乎与一般建议相比很有趣 因此 我在搞素数生成器函数 并提出了一种奇怪的行为 其中 人们建议效率最高 实际上效率最低 而 C private stat
  • 为什么我的 if 语句没有按我预期的方式工作?

    我正在尝试实现以下目标 我向我的 SQL 数据库询问使用SELECT FROM subjects 这样做之后我要求使用数组mysqli fetch assoc 在那之前一切都很好 现在的问题是 当我尝试在每个循环中修改 genero 的值
  • 比较数组中的文件、从文本文件中删除行、函数、日志记录

    所以我创建了这两个数组 Approved Shares 和 Current Shares Reads Approvedshare txt and makes the txt file into an array public objFSO
  • jQuery mousemove 性能 - 节流事件?

    我们面临着与 mousemove 连接的 jQuery 事件传播性能问题 我们有一个屏幕填充画布 需要跟踪用户是否在其上拖动鼠标 因此我们在该对象上添加了一个鼠标移动侦听器 如下所示 ourCanvas on mousemove funct
  • 比较已编译的 .NET 程序集?

    有没有什么好的程序可以与编译 NET 程序集进行比较 例如 我有 HelloWorld dll 1 0 0 0 和 HelloWorld dll 2 0 0 0 我想比较差异 我该怎么做 我知道我可以使用 NET Reflector 并使用
  • Excel 2003 中的 IFERROR

    我通过阅读几个线程了解到IFERROR在 Excel 2003 中由IF ISERROR 我尝试从 Excel 2007 复制的代码是 IFERROR A1 我知道必须有一个简单的解决方案将其转换为IF ISERROR 但我没有任何效果 意
  • 使用 enum.values() 与字符串数组相比,性能是否会受到影响?

    我正在使用枚举来替换String我的 java 应用程序 JRE 1 5 中的常量 当我在不断调用的方法中将枚举视为名称的静态数组时 例如 在渲染 UI 时 是否会对性能造成影响 我的代码看起来有点像这样 public String get
  • C# 的最佳替代“错误继续下一步”是什么?

    如果我为 C 代码放置空的 catch 块 它是否与 VB NET 的 On Error Resume Next 语句等效 try C code catch exception 我问这个问题的原因是因为我必须将 VB NET 代码转换为 C
  • VB.NET 中的模块变量何时实例化?

    我想知道在程序的生命周期中 模块中的变量将被初始化 如下例所示 Module Helper Friend m Settings As New UserSettings Sub Foo End Sub Sub Bar End Sub End
  • 在 String.Format 中插入格式化字符?

    我用谷歌搜索了这个 但 VB Net 2008 似乎不允许在 String Format 中插入格式化字符 例如 t r n BAD MessageBox Show String Format 0 tab 1 Foo Bar BAD Mes
  • 海量记录的bulk_create最佳实践

    I use bulk create将 1 mio 记录插入到新表中 需要 80 秒 Django 只使用一个 CPU 核心 大约 25 CPU 但没有一个核心达到 100 我相信有改进的潜力 这是代码 class Stock models
  • 键入时自动滚动 DataGridView

    我遇到这个问题 DataGridView 中的最后一列太长 您需要使用滚动条来显示该列的其余部分 但是当我输入文本时 它不会在输入时自动滚动 我想要的是 我想在打字时自动滚动滚动条 以便用户在打字时不必使用滚动条 这是图像 As you c
  • 数字或货币的字符串格式?

    我需要为每个千给出逗号 所以我用了DataFormatString 0 它运行良好 但当值为0 它正在显示 00 我只想只显示 0 我们怎样才能做到这一点 DataFormatString 0 C0 这将格式化为小数点后 0 位的货币 Da
  • 在 jQuery 中获取最接近元素的形式

    我编写了这个 js jquery 脚本来检查表单中的所有复选框 它工作得很好 但是这会检查页面上的所有复选框 无论它们是什么表单包装器 这是函数 function toggleCheck state var checkboxes jQuer
  • 高效秒表

    您好 我正在用 javascript 编写一个秒表实用程序 我有一个关于效率和开销的问题 我考虑过两种制作秒表的方法 1 存储开始日期并不断测量自该日期以来经过的毫秒数 2 创建一个整数并按设定的时间间隔递增其值 我想知道哪个最有效 另外
  • Gtk/GtkD 在窗口调整大小时检测鼠标按钮的释放?

    我正在尝试改进我用 GtkD Gtk 的 D 绑定 编写的绘图库 具有很多点的散点图需要很长时间才能调整大小 我想重新缩放图像 允许像素化 同时用户拖动窗口边缘来调整大小 并且仅在释放鼠标按钮时重新渲染它 是否有 API 可以检测在调整窗口
  • 我应该如何在 VB.NET 中进行转换?

    所有这些都相等吗 在什么情况下我应该选择其中一个而不是其他 var ToString CStr 变量 CType 变量 字符串 DirectCast 变量 字符串 编辑 来自的建议不是我自己 https stackoverflow com
  • 1.2.840.113556.1.4.1941 (LDAP_MATCHING_RULE_IN_CHAIN) 存在性能问题?

    LDAP 搜索有一些内置规则 其中之一是LDAP MATCHING RULE IN CHAIN From MSDN https msdn microsoft com en us library aa746475 v vs 85 aspx 1

随机推荐

  • 在 Java 中使用 char 作为无符号 16 位值?

    我需要 Java 中的无符号 8 位整数 而 char 似乎是唯一接近的东西 虽然它的大小是两倍 但它是无符号的 这使得它对于我想要使用它的用途 编写需要无符号字节的基本模拟器 来说很实用 问题是我听其他程序员说不应该以这种方式使用 cha
  • LL(1) 解析器中 FIRST 和 FOLLOW 集的用途?

    谁能向我解释一下 LL 1 语法中如何使用 FIRST 和 FOLLOW 我知道它们用于语法表构建 但我不明白如何使用 在 LL 1 解析器中 解析器的工作方式是维护一个工作空间 该工作空间最初播种到开始符号 后跟字符串结束标记 通常表示为
  • MySQL中查找id最大的行

    看一下下面名为 Articles 的 MySQL 表 id articleId version title content 1 1 0 0 ArticleNo 1 title v0 0 ArticleNo 1 content v0 0 2
  • maven-bundle-plugin 的输出目录

    我有这个生成 osgi 包的 POM 文件
  • Facebook API 页面提要未将信息发送到我的 webhook?

    我是我的测试应用程序和测试页面的管理员 现在我正在做一个通过 webhook 实时获取页面提要的功能 仅在开发模式下 当我单击应用程序仪表板上的测试按钮时 它已发送到我的网络钩子 但是当我评论或喜欢 该帖子时 即使我订阅了 feed web
  • 如何通过电子邮件发送 Excel 文件?

    我有一个 excel 文件 Excel 2003 xls 格式 我想用 c 通过电子邮件发送它 我的代码成功发送它 但是当我尝试打开响应文件时 它似乎编码错误 例如 这里是响应文件名 utf 8 B RWxzesOhbW9sw6FzXzIw
  • 在一个项目中使用多个 Javascript 框架?

    在一个项目中使用多个框架是好是坏 还是不好 因为它会变得混乱 一团糟 并且加载时间可能会更长 100 K 真的很重要吗 或者你应该坚持使用一个 通常最好选择一件事并坚持下去 原因有很多 更少的依赖 降低复杂性 更容易维护 更快的加载时间 不
  • SQL Server 实例名称的最大长度?

    我需要知道以下版本的 SQL Server 实例名称的最大字符长度 如果它们之间存在差异 SQL Server 2000 SQL Server 2005 SQL Server 2008 SQL Server 2008 R2 我正在开发一个应
  • 在 64 位 Windows 上运行 32 位可执行文件时出现问题

    如果允许的话 我会添加 500 个我自己的代表作为赏金 我在用着wkhtml转pdf http wkhtmltopdf org 将 HTML 网页转换为 PDF 这在我的 32 位开发服务器上完美运行 不幸的是 我无法运送我的机器 p 但是
  • 如何根据域名更改视图格式

    我想知道是否有任何方法可以根据域名更改相同 Rails 应用程序的视图格式 例如 www domain com gt respond to format html api domain com gt respond to format xm
  • 捕获图像时出现错误

    我想使用相机捕获图像并想要图像路径 我尝试遵循代码 但出现错误 我点击这个链接从 ACTION IMAGE CAPTURE Intent 获取图像路径 https stackoverflow com questions 4184951 ge
  • 在 JavaScript 中混淆和反混淆字符串的最简单方法

    我正在寻找一种在 JavaScript 中混淆和反混淆字符串的方法 我的意思是当安全性不是问题时的加密和解密 理想情况下是 JS 原生的东西 比如base64 encode and base64 decode 在 PHP 中 可以 将字符串
  • SqlCommand.Dispose() 在 SqlTransaction.Commit() 之前?

    在提交事务之前处理分配给事务的命令是否有效 我自己测试了以下代码 它似乎工作得很好 但这是一个相当小的例子 所以我正在寻找是否有人确实知道的确认 internal static void TestTransaction try Progra
  • 为什么 64 位 MSBuild 加载 32 位扩展?

    我正在尝试在 64 位计算机上使用 MSBuild v4 0 构建一个项目 由于某种原因 MSBuild 正在尝试加载 32 位扩展 但我不明白为什么 为了演示该问题 我已将问题减少到最小 使用以下 MSBuild 项目文件
  • 苹果、橙子和指向最派生的 C++ 类的指针

    假设我有一堆水果 class Fruit class Apple public Fruit class Orange public Fruit 以及一些作用于所述水果的多态函数 void Eat Fruit f Pesticide p vo
  • 在 Emacs 中,如何在迷你缓冲区中显示带有字体属性的消息?

    我想在迷你缓冲区中显示彩色文本字符串 但是当我使用 消息 函数时 文本属性被删除 对我有用 message s propertize foo face foreground red 你可能有 message propertize 它将属性化
  • 如何在 Apple Watch Extension/App 和 iOS App 之间建立通信通道

    我正在探索 WatchKit SDK 当我有 WatchKit 应用程序时 是否可以在 WatchKit 应用程序上从 iPhone 应用程序设置值 例如文本 设置 我可以从 iPhone 应用程序调用 WatchKit 应用程序扩展中的函
  • 如何为 MySQL 中的字段或列添加别名?

    我正在尝试做这样的事情 但我收到未知的列错误 SELECT SUM field1 field2 AS col1 col1 field3 AS col3 from core 基本上 我只想使用别名 这样我就不需要执行之前执行的操作 这在mys
  • Anaconda Python 3.6——pythonw 和 python 应该是等价的吗?

    根据Python 3文档 python和pythonw对于运行GUI脚本应该是等效的自 3 6 起 https docs python org 3 using mac html running scripts with a gui 对于旧版
  • 有没有更简单的方法来处理复选框?

    在 vb net 中 我有一个包含一组四个复选框的表单 每个复选框都表示 选中时 用户想要向其订单添加特殊指令 代码如下所示 If SpecialInstruction1CheckBox Checked Then AddSpecialIns