首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以编程方式检查DataBound CheckListBox

以编程方式检查DataBound CheckListBox
EN

Stack Overflow用户
提问于 2011-01-11 04:00:47
回答 1查看 993关注 0票数 1

我有一个DataBound "CheckedListBox",我需要检查一下上面的一些东西。我试着用以下代码..。

代码语言:javascript
复制
if (!string.IsNullOrEmpty(search.Languages))
        {
            string[] langs = search.Languages.Split(',');
            for (int i = 0; i < (langs.Length - 1); i++)
            {
                for (int j = 0; j < clbLang.Items.Count; j++)
                {
                    string lng = clbLang.Items[j] as string;
                    if (lng.Trim() == langs[i])
                    {
                        clbLang.SetItemChecked(j, true);
                        break;
                    }
                }
            }
        }

没有错误,已调试的执行正在经历“检查”过程,但最后我看不到在它上检查的任何内容。

然后,我添加了一个按钮,并添加了下面的代码。(单击“检查所有项目”)

代码语言:javascript
复制
private void button9_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < clbLang.Items.Count; i++)
        {
            clbLang.SetItemChecked(i, true);
        }
    }

这是“检查”所有项目,请告诉我,如果有人能看到问题在这里.?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-11 05:08:05

最后发现,这是一种由M.

这里解释得很清楚。

这个问题很容易再现。只要隐藏并显示一个数据库CheckedListBox,您就会注意到以前检查过的项是如何不被选中的。

CheckedListBox SetItemChecked方法无效

所以我们得想个办法.我试过这样做,效果很好.

在我打电话的地方检查我添加的物品.我正在添加需要签入控件的标记的内容。

代码语言:javascript
复制
if (!string.IsNullOrEmpty(search.Languages))
{
    clbLang.Tag = search.Languages;
}

然后,按照该控件的"VisibleChanged()“事件中的代码进行操作。

代码语言:javascript
复制
private void clbLang_VisibleChanged(object sender, EventArgs e)
    {
        string lngs = clbLang.Tag as string;
        if (!string.IsNullOrEmpty(lngs))
        {
            string[] langs = lngs.Split(',');
            foreach (string lang in langs)
            {
                int j = 0;
                foreach (DataRowView row in clbLang.Items)
                {
                    if (row != null)
                    {
                        string lng = row[1] as string;
                        if (lng.Trim() == lang)
                        {
                            clbLang.SetItemChecked(j, true);
                            break;
                        }
                    }
                    j++;
                }
            }
        }
    }

我做得很好,希望这对你有好处.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4654056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档