zoukankan      html  css  js  c++  java
  • 在CheckedListBox控件中消失签的解决方案

    介绍 正如新闻组中许

      

    多报道的那样(包括我!),当项目已经用DataSource属性填充时,当它的可见属性被设置为false时,CheckedListBox控件会忘记选中了哪个项目,然后返回true. 当它托管在TabControl上并且选项卡被翻转时,也会出现这个问题。 我第一次遇到这个问题是在。net开发的第一周。非常令人沮丧的开始!,从那时起,我尝试了许多变通方法,但所有的方法都让我非常头疼,尤其是当我试图在更复杂的表单上使用它们时。 这些变通方法包括从不将CheckedListBox的可见属性设置为False。相反,我将控件移动到表单外部(例如:-5000,-5000)。它工作(大部分时间),但一些客户报告的问题,即使这样。 在将可见设置为False之前,我还尝试将所有检查保存在数组中,然后将它们放回CheckedListBox中,设置为Visible=true,但再次,我觉得这是一种相当无效的方法。 那时,我并不知道这个bug与Datasource属性有关。最近,我在扯自己的头发几个小时后才明白了这一点。我终于想出了一个又好又简单的解决办法…… 的解决方案 正如我前面提到的,只有在使用DataSource将项目添加到CheckedListBox时才会出现问题。所以,您猜对了,我们的想法是不使用数据源!:),这是我想到的密码:藏起来。复制Code

    Private Sub SetClBoxDataSource(ByVal clb As CheckedListBox, 
                     ByVal dt As DataTable)
    
        'Clear it
        clb.Items.Clear()
    
        'Fill it
        Dim x As Integer
        For x = 0 To dt.DefaultView.Count - 1
            clb.Items.Add(dt.DefaultView.Item(x))
        Next
    
    End Sub

    基本上,这段代码所做的就是使用一个简单的循环。现在,我们不用下面的代码来填充CheckedListBox:Hide复制Code

    CheckedListBox.DataSource = DataTable
    

    你应该做的是:躲起来复制Code

    SetClBoxDataSource(CheckedListBox, DataTable)
    

    再简单不过了!只有一行代码需要更改! 本文转载于:http://www.diyabc.com/frontweb/news345.html

  • 相关阅读:
    树莓派3的无线设置
    Zabbix监控
    使用mutt+msmtp在Linux命令行界面下发邮件(续)
    K8S(16)集成实战-使用spinnaker进行自动化部署
    K8S(15)监控实战-ELK收集K8S内应用日志
    K8S(14)监控实战-grafana出图_alert告警
    K8S(13)监控实战-部署prometheus
    K8S(12)配置中心实战-多环境交付apollo三组件
    K8S(11)配置中心实战-单环境交付apollo三组件
    K8S(10)配置中心实战-configmap资源
  • 原文地址:https://www.cnblogs.com/Dincat/p/13438053.html
Copyright © 2011-2022 走看看