我有一个文本框,其中将填充一个由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
谢谢, 麦克
答案 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!
}
}
}
}