0

私は周りを検索しましたが、参考文献を見つけることができませんでした。

の項目に関連する汎用リストの項目を削除するにはどうすればよいlistboxですか?

私は現在public static List<Employees>listbox名前付きを持ってlstRecordsいます。アイテムをlistbox問題なく削除できますが、リストからすべてが削除されるか、何も削除されません。

これは、私が作業していた最初のコード セットです。

private void DeleteRecord()
{
        if (lstRecords.Items.Count > 0)
        {
            for (int i = 0; i < lstRecords.Items.Count; i++)
            {
                if (lstRecords.GetSelected(i) == true)
                {
                    Employees employeeRecord = lstRecords.SelectedItem as Employees;
                    employee.Remove(employeeRecord);
                }
            }



            lstRecords.Items.Remove(lstRecords.SelectedItem);
        }
    }  
}

これは私が作業していた 2 番目のコード セットです。List は部分クラスのすぐ下にありますが、これはすべてメソッドに含まれています。

private void DeleteRecord()
{
        ListBox lstRecords = new ListBox();
        List<object> employee = new List<object>();
        employee.RemoveAt(lstRecords.SelectedIndex);
        lstRecords.Items.RemoveAt(lstRecords.SelectedIndex);
}  

これまでのところ、どちらのコード セットも思いどおりに動作していません。明らかに何か間違ったことをしています。

他にもいくつかのコード ブロックを試してみましたが、これらは正しい方向に向かっているように見えました。

最終的には、リスト内の項目をダブルクリックしてプロパティ メニューを表示できるようにする必要があります。

4

2 に答える 2

0

やりたいことは、ListBox を従業員のリストにバインドすることです。この投稿はバインディングを示し、コメントはコードの削除も示しています。アイデアは、DataSource からアイテムを削除すると、ListBox に表示されなくなるということです。

リストボックスを List<object> にバインドする

DeleteRecord() メソッドの問題は、作成したばかりの lstRecords オブジェクトがフォーム上の ListBox ではないことです。

于 2013-07-19T21:54:45.383 に答える
0

小さな変更を加えるだけで、コードは正常に動作します。最初のコード ブロックは問題ありませんが、lstRecords がどこにあるのかわかりません。しかし、これを見て、コードをコピーして、従業員オブジェクトにいくつかのレコードを作成した後に実行してください。

コードでリストボックスを作成し、それをフォーム(Winforms)に追加し、lstRecordsをグローバルに持っています。

ListBox lstRecords;
    private void IntializeDemoListbox()
    {
        lstRecords = new ListBox();
        this.Controls.Add(lstRecords);

        foreach (var item in employee)
        {
            lstRecords.Items.Add(item);
        }
    }

そして、最初のコードセットを使用できるようになり、他のセットは次のようになります.

private void DeleteRecord()
{
        employee.RemoveAt(lstRecords.SelectedIndex);
        lstRecords.Items.RemoveAt(lstRecords.SelectedIndex);
}  
于 2013-07-19T22:41:19.910 に答える