CheckedListBox和EventArgs

时间:2009-07-26 16:45:08

标签: c# winforms checkedlistbox

我在这里做错了什么?要温柔。

对于CheckedListBox,我只需使用以下内容即可更新项目:

private void button3_Click(object sender, EventArgs e)
{
    checkedListBox4.Items.Add("whatever"); //or use an object
}

效果很好,但我想要做的是从另一个类中的方法发送CheckedListItem一组项目

所以,我设置了另一个class something:form1,它有一个委托指向我称之为\ invoke

的方法

委托调用\以这种方式调用:

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)
 {}        

checkedListBox4中的项目集合已更新,其值与我发送的一样多,但它不会绘制项目\显示项目

我已尝试调用checkedListBox4_datavaluememberchanged方法和其他一些checkedListBox4_changed个事件,但系列中的项目再次更新,但它们未显示在CheckedListBox

我认为这与它没有eventargs

有关

是否有一种简单的方法可以将成功的CheckedListBox的所有属性,事件和属性与不成功的CheckedListBox(以编程方式)

进行并排比较

注意:该类继承自form1所在的CheckedListBox,并且方法访问权限设置为公开。

1 个答案:

答案 0 :(得分:0)

您缺少的是告诉checkedListBox该对象应该是什么值。

checkedListBox4.ValueMember = "Text";

告诉CheckedListBox使用匹配该字符串的成员作为显示值。

https://stackoverflow.com/a/2023338/455536

http://msdn.microsoft.com/en-us/library/3yx132k0(v=vs.110).aspx

  

一个字符串,它指定从中绘制值的数据源的属性。