CheckedListBox填充文本控件

时间:2009-11-02 18:05:34

标签: c# windows checkedlistbox

我有一个文本框,其中将填充一个由CheckedListBox控件驱动的逗号处理列表。

这个想法是,当用户在列表中检查项目时,它们将出现在上面的文本字段中。我有这个工作,如果我检查一个项目,然后单击控件内的其他地方,然后文本最终在文本框中。我在我的控件上捕获click事件。

如果我使用item_checked事件,那么在我检查第二个项目之前,文本框中的列表不会更新(此时只有选中的第一个项目显示在文本框中。)无论如何在这附近?在MSDN上阅读似乎没有显示任何其他适用的事件。

我正在使用.net 1.1。

这是在事件陷阱上运行的方法。

Private Sub FillCheckedTagsTextBox()

    txtSelectedTags.Text = ""

    Dim tagChecked As Object

    For Each tagChecked In cltTagSelection.CheckedItems

        txtSelectedTags.Text = txtSelectedTags.Text + tagChecked.ToString() + ", "

    Next

End Sub

txtSelectedTags.Text = "" Dim tagChecked As Object For Each tagChecked In cltTagSelection.CheckedItems txtSelectedTags.Text = txtSelectedTags.Text + tagChecked.ToString() + ", " Next

谢谢, 麦克

1 个答案:

答案 0 :(得分:0)

哎呀1.1?你的雇主想要杀了你吗?如果可以的话,我会尽量提高到2.0。

如果您说“已检查”事件,请仔细检查CheckedChanged?在2.00这适用于桌面。这是1.1中的错误吗?

如果它是一个bug(在决定之前先检查你自己的代码!然后再检查一下!)然后我可以建议尝试捕获当控件失去焦点时发生的Leave事件。如果失败了,您可以将业务对象数据绑定到.Checked属性,然后在值更改时触发您自己的事件。 E.G。

public class MyValues
{
    private bool _check;

    public bool Check
    {
        get
        {
            return _check;
        }
        set
        {
            if(_check != value)
            {
                _check = value;
                // todo: raise event!
            }
        }
    }
}