0

我有一个文本框,该文本框将填充由 CheckedListBox 控件驱动的逗号分隔列表。

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

如果我使用 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

谢谢,迈克

4

1 回答 1

0

哎哟1.1?你的雇主想杀了你吗?如果可以的话,我会尝试提高到 2.0。

当您说“Checked”事件时要仔细检查您的意思是 CheckedChanged 吗?在 2.00 中,这在桌面上运行良好。这是1.1中的错误吗?

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

public class MyValues
{
    private bool _check;

    public bool Check
    {
        get
        {
            return _check;
        }
        set
        {
            if(_check != value)
            {
                _check = value;
                // todo: raise event!
            }
        }
    }
}
于 2009-11-02T18:21:26.760 回答