0

私はここで何が間違っているのですか?穏やかな。

の場合CheckedListBox、次を使用するだけでアイテムを更新できます。

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

うまく機能しますが、私がやりたいのは、CheckedListItem別のクラス内のメソッドからアイテムのセットを送信することです

class something:form1だから、私は私が呼び出す/呼び出すメソッドを指すデリゲートを持つ別のものを設定しました

デリゲートは、次のように呼び出し/呼び出します。

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、メソッドaccessはpublicに設定されます。

4

1 に答える 1

0

あなたが欠けているのは、checkedListBoxに、そのオブジェクトの値がどうあるべきかを伝えることです。

checkedListBox4.ValueMember = "Text";

これにより、CheckedListBox は、その正確な文字列に一致するメンバーを表示値として使用するように指示されます。

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

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

値を取得するデータ ソースのプロパティを指定する文字列。

于 2014-02-22T13:37:07.763 に答える