我在这里做错了什么?要温柔。
对于CheckedListBox
,我可以简单地使用以下方法更新项目:
private void button3_Click(object sender, EventArgs e)
{
checkedListBox4.Items.Add("whatever"); //or use an object
}
效果很好,但我想做的是CheckedListItem
从另一个类中的方法发送一组项目
所以,我设置了另一个class something:form1
有一个委托,该委托指向我调用的方法\invoke
委托以这种方式调用\invokes:
public delegate void m_del(List<DirectoryInfo> ww, string rr);
代码中的其他地方:
m_del methtouse = new m_del(listme)
public void listme(List<DirectoryInfo> fi, string mypath)
{
foreach (DirectoryInfo j in fi)
{
mypath = null; //mypath used by another method
try
{
NewCheckboxListItem cb1 = new NewCheckboxListItem();
cb1.Tag = j.Name;
cb1.Text = j.Name;
checkedListBox4.Items.Add(cb1);
}
catch (Exception w)
{
MessageBox.Show(w.Message);
}
}
}
public class NewCheckboxListItem
{
// define a text and
// a tag value
public string Text;
public string Tag;
// override ToString(); this
// is what the checkbox control
// displays as text
public override string ToString()
{
return this.Text;
}
}
methtouse( a List<DirectoryInfo> ww, a string rr)
{}
发生的情况是 中的 Item 集合checkedListBox4
已更新并且具有与我发送它一样多的值,但它不会绘制该项目\显示该项目
我尝试调用一个checkedListBox4_datavaluememberchanged
方法和一些其他checkedListBox4_changed
事件,但集合中的项目再次更新,但它们没有出现在CheckedListBox
我认为这与它没有eventargs
有没有一种简单的方法可以并排比较成功CheckedListBox
与不成功的所有属性、事件、属性CheckedListBox
(以编程方式)
注意:类继承自form1
所在CheckedListBox
位置,方法访问设置为public。