2016-07-26 21 views
0

前の質問に対する回答とヘルプを使用します。私は今、別の問題に遭遇しました。削除ボタンListBoxのアイテムを削除しない

私のbtnDelete_MouseClick()イベントは、テキストボックスに保存されている顧客情報を削除していません。まったく同じ情報が、対応するテキストフィールドにあると私はそれリストボックスから削除deleteボタンを押すときにアシュトン・スミス864123456789

そして:

は、私はそれはのような情報で撮りたいです。

これはこれまで私が行ってきたことです。それは実行されますが、顧客をlistBoxから削除することはありません。削除用


public partial class Form1 : Form 
{ 
    Customer cust; 
    public Form1() 
    { 
     InitializeComponent(); 

     tbxFirstName.CharacterCasing = CharacterCasing.Upper; 
     tbxFirstName.MaxLength = 35; 
     tbxLastName.CharacterCasing = CharacterCasing.Upper; 
     tbxLastName.MaxLength = 35; 
     tbxPhone.MaxLength = 10; 
     listBoxDatabase.Name = "CUSTOMERS"; 
    } 

    private void btnAddCustomer_MouseClick(object sender, MouseEventArgs e) 
    { 
     //string customer = tbxFirstName.Text + " " + tbxLastName.Text + " " + tbxPhone.Text; 
     cust = new Customer(tbxFirstName.Text, tbxLastName.Text, tbxPhone.Text); 


     if (listBoxDatabase.Items.Cast<Customer>().Any(x => x.ToString() == cust.ToString())) 
     { 

      MessageBox.Show("Customer Already Exist!", "ERROR"); 
     } 
     else 
     { 
      listBoxDatabase.Items.Add(cust); 
     } 
    } 

    private void btnDelete_MouseClick(object sender, MouseEventArgs e) 
    { 
     Customer custToDelete = listBoxDatabase.Items.Cast<Customer>().FirstOrDefault(x => x.ToString() == cust.ToString()); 

     if (custToDelete != null) 
     { 
      listBoxDatabase.Items.Remove(cust); 
     } 
     else 
     { 
      MessageBox.Show("No Customer Found!", "ERROR"); 
     } 
    } 

    private void listBoxDatabase_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if (listBoxDatabase.SelectedIndex != -1) 
     { 
      Customer cust = listBoxDatabase.Items[listBoxDatabase.SelectedIndex] as Customer; 
      tbxFirstName.Text = cust.getFirstName; 
      tbxLastName.Text = cust.getLastName; 
      tbxPhone.Text = cust.getPhone; 
     } 
    } 
} 

enter image description here

+0

は、listBoxDatabaseから削除されていますか? – Forlani

+0

マウスクリックのイベントリスナーがありませんか? – Aliminator

+0

いいえリストボックスから削除されていません@Forlani – Ashton

答えて

1

あなたの論理は間違っています。オブジェクトの比較に.ToString()を使用しないでください。リストボックスの選択したアイテムを特定のタイプにキャストし、アイテムコレクションから削除することができます。

Customer selected = listBoxDatabase.SelectedItem as Customer; 
if(selected != null) 
    listBoxDatabase.Items.Remove(selected); 
else 
    MessageBox.Show("No Customer Found!", "ERROR"); 
+0

このコードは私のメソッド全体を置き換えるのか、単にifステートメント内のコードを置き換えますか?ご協力ありがとうございました! – Ashton

+0

これはあなたの全体の方法でなければなりません。編集を確認してください。 – user3185569

+0

いくつかのエラーがありました(選択したのではなく、選択しました!)が正しいです。これは機能します。ありがとうございました :) – Ashton

関連する問題