看板 C_Sharp 關於我們 聯絡資訊
※ 引述《kevin8685 (最愛maki~!)》之銘言: : 以下是我修改過後的 : 刪除按鈕 : 目前有個問題 : 執行後 可以成功進行第一次刪除 : 但是第二次就會卡住.. : 重開程式後 還是一樣 : 第一次成功 第二次卡住 : private void button1_Click(object sender, EventArgs e) : { <cut /> : while (!item.EndOfStream) : { : string[] item2 = item.ReadLine().Split(' '); : dr = dt.NewRow(); : dr["Key"] = item2[0]; : dr["Value"] = item2[1] + " " + item2[2]; : dt.Rows.Add(dr["Value"], dr["Key"]); : } 為什麼卡住,這問題除了在你那邊各種因素都確認清楚,否則難以判斷. 此外, 你的物件binding是這樣: listBox1.DataSource --> (BindingSource)bs --> (DataTable)dt 無法修改listBox1的項目,那就去改bs的項目. 無法修改bs的項目,就修改dt的項目. 這樣就可以了. 你為了記錄listBox1的項目,弄一個檔案跟它同步,實在沒必要. 我的作法是: 從listBox1中抓到選取的項目,這些項目在資料來源都可以識別為 同樣的物件,所以只要取得選取項目的參考,然後到資料來源中一項項刪除即可. private void button1_Click(object sender, EventArgs e) { if (listBox1.SelectedItems.Count > 0) { List<DataRow> lrows = new List<DataRow>(); foreach (DataRowView o in listBox1.SelectedItems) { lrows.Add(o.Row); } foreach (DataRow rr in lrows) { dt.Rows.Remove(rr); } BindingSource bs = new BindingSource(); bs.DataSource = dt; listBox1.DataSource = bs; listBox1.DisplayMember = "Value"; listBox1.ValueMember = "Key"; } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.130.152.25 ※ 編輯: yauhh 來自: 220.130.152.25 (06/15 12:18)
kevin8685:感謝幫忙^^ 我採用了A大的方法 直接從BS取來源 06/16 00:38
yauhh:你可以問問題,但不要把場面搞得好像是大家提供答案讓你選. 06/16 20:02
yauhh:這是一個公開討論,而不是解題服務. 06/16 20:02
kevin8685:抱歉^^ 我對我的言論做道歉!! 請別介意 06/17 15:34