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

以静态方法获取项目CheckState-GetitemCheckStateinastaticmethod

ImadeanextensionmethodtoswapplacesoftwoitemsinaCheckedListBox.Themethodisputinas

I made an extension method to swap places of two items in a CheckedListBox. The method is put in a static Utilities class. The problem is that the CheckState doesn't travel. So if I move a checked item up in the list, the checkbox state will stay and the moved item will take over the CheckState from the item it's replacing.

我做了一个扩展方法来交换CheckedListBox中两个项目的位置。该方法放在静态Utilities类中。问题是CheckState不会移动。因此,如果我在列表中移动已检查的项目,则复选框状态将保留,移动的项目将从其替换的项目接管CheckState。

My code looks like this:

我的代码如下所示:

public static System.Windows.Forms.CheckedListBox.ObjectCollection Swap(this System.Windows.Forms.CheckedListBox.ObjectCollection lstBoxItems, int indexA, int indexB)
{
    if (indexB > -1 && indexB 

What I want is something like this (which doesn't work obviously)

我想要的是这样的东西(显然不起作用)

public static System.Windows.Forms.CheckedListBox.ObjectCollection Swap(this System.Windows.Forms.CheckedListBox.ObjectCollection lstBoxItems, int indexA, int indexB)
{
    if (indexB > -1 && indexB 

The code is simply called like this

代码就像这样简单地调用

myCheckedListBox.Items.Swap(selectedIndex, targetIndex);

2 个解决方案

#1


3  

I haven't used the CheckedListBox before, but if I had to hazard a guess looking at the MSDN docs for it, I would say you'd want to use the GetItemCheckedState and the SetItemCheckedState methods. However, that also means you'd have to pass in the CheckedListBox as well rather than just its .Items ObjectCollection.

我之前没有使用过CheckedListBox,但如果我不得不冒险猜测它的MSDN文档,我会说你想要使用GetItemCheckedState和SetItemCheckedState方法。但是,这也意味着您必须传入CheckedListBox,而不仅仅是传递.Items ObjectCollection。

public static System.Windows.Forms.CheckedListBox Swap(this System.Windows.Forms.CheckedListBox listBox, int indexA, int indexB)
{
    var lstBoxItems = listBox.Items;
    if (indexB > -1 && indexB 

So naturally your calling code would change to something like this:

所以你的调用代码自然会变成这样的东西:

myCheckedListBox.Swap(selectedIndex, targetIndex);

Also, note that my method returns the input CheckedListBox as well instead of the ObjectCollection; figured that would be more appropriate now given the change of signature parameters.

另外,请注意我的方法也返回输入CheckedListBox而不是ObjectCollection;考虑到签名参数的变化,现在更合适。

#2


1  

Maybe the problem is that you should be first getting the current check state of actual list box item instead of from the copy. You already know that the list box is managing the checks separate from the item list content!

也许问题是你应该首先获得实际列表框项目的当前检查状态而不是副本。您已经知道列表框正在管理与项目列表内容分开的支票!

You also should consider getting the current checked states for both items A and B. After you perform the item swap then reapply the checked state to the two items so you maintain that status for both swapped items.

您还应考虑获取项目A和B的当前已检查状态。执行项目交换后,将已检查状态重新应用于这两个项目,以便为两个交换项目保持该状态。


推荐阅读
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • td{border:1pxsolid#808080;}参考:和FMX相关的类(表)TFmxObjectIFreeNotification ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • C#爬虫Fiddler插件开发自动生成代码
    哈喽^_^一般我们在编写网页爬虫的时候经常会使用到Fiddler这个工具来分析http包,而且通常并不是分析一个包就够了的,所以为了把更多的时间放在分析http包上,自动化生成 ... [详细]
  • 本文详细介绍了如何利用 Bootstrap Table 实现数据展示与操作,包括数据加载、表格配置及前后端交互等关键步骤。 ... [详细]
  • WPF项目学习.一
    WPF项目搭建版权声明:本文为博主初学经验,未经博主允许不得转载。一、前言记录在学习与制作WPF过程中遇到的解决方案。使用MVVM的优点是数据和视图分离,双向绑定,低耦合,可重用行 ... [详细]
  • 本文探讨了如何在C#应用程序中通过选择ComboBox项从MySQL数据库中检索数据值。具体介绍了在事件处理方法 `comboBox2_SelectedIndexChanged` 中可能出现的常见错误,并提供了详细的解决方案和优化建议,以确保数据能够正确且高效地从数据库中读取并显示在界面上。此外,还讨论了连接字符串的配置、SQL查询语句的编写以及异常处理的最佳实践,帮助开发者避免常见的陷阱并提高代码的健壮性。 ... [详细]
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
  • 使用DetailsView控件实现数据分页显示
    本文介绍了如何利用DetailsView控件结合数据源,在ASP.NET页面中实现数据的分页显示功能。 ... [详细]
  • InpreviousversionsofVisualStudio,therewereseparatecommandpromptsforx86andx64.InVS201 ... [详细]
author-avatar
手机用户2502863963
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有