2017-01-21 5 views
0

私はそれを強調するために文字列と一緒に来るリストボックスで特定の番号(オブジェクト)を検索しようとしています。次のコードでは、すべてのオブジェクトを含むToString()メソッドをオーバーライドします。これに続いてC#文字列+オブジェクトのリストボックスをチェックするには?

public override string ToString() 
    { 

     string reservatiestring; 
     reservatiestring = "Kamer: " + roomNumber + "" + " Op datum: " + datum + " Aantal personen: " + personen.Count + " Naam: " + reservatienaam; 
     return reservatiestring; 
    } 

私は、コードの以下のビットに私のリストボックスに追加します。

listBox1.Items.Add(reservatie.ToString()); 

私は今、同じroomNumberオブジェクトを含む私のリストボックス内のすべての項目を検索します。これを行うには、私はContains()メソッドの前にテキストを ":Kamer:"とオブジェクトが+ comboBox1.SelectedItemを探していました。しかし、これは常に失敗し、私のコードは私にエラーメッセージを与えるelseオプションに行きます。

private void buttonSearch_Click(object sender, EventArgs e) 
    { 
     listBox1.SelectionMode = SelectionMode.MultiExtended; 
     Reservations reservaties = new Reservations(); 

     reservaties.roomnumberstring = "Kamer: " + comboBox1.SelectedValue; 

     for (int i = listBox1.Items.Count - 1; i >= 0; i--) 
     { 
      if (listBox1.Items[i].ToString().ToLower().Contains(("Kamer: " + comboBox1.SelectedValue))) 
      { 
       listBox1.SetSelected(i, true); 
      } 
      else 
      { 
       MessageBox.Show("error"); 
      } 

ご注意:すべての私のroomNumberオブジェクトがコンボボックスに格納されている、私は私のコンボボックスでroomNumber 3たとえば選択し、含むリストボックス内のすべての項目検索ヒット時はいつでもそう「Kamer:3」を選択する必要があります。

roomnumberstringは私が残念なことに動作しなかったオプションです。

reservaties.roomnumberstring = "Kamer: " + comboBox1.SelectedValue; 
+0

代わりのあなたのリストボックスに文字列を追加することでisn't「Kamer」、と

.ToLower() 

を比較しています。これは、ToString()表現を使用してListBoxに表示されます。リストボックスの項目をクラスタイプにキャストし、そのメンバーすべてにアクセスすることができます... –

答えて

0

ToStringメソッドのオーバーライドは間違っており、何も変更されません。これを試してみてください:

+0

「Kamer:」を検索しようとすると、この問題は解決しませんが、 roomNumber部分。 –

0

コードが失敗する可能性があることが1つあります。あなたのクラスの実際のインスタンスを追加し、「K」は小文字

+0

また、文字列: "reservatiestring"には、比較で見つからない小文字以外の文字が多く含まれています –

+0

これは、私が間違いなく私のエラーメッセージに行った理由を修正しました。しかし、コンボボックスで選択した番号iを含むリストボックス内のすべてのアイテムは、特定のKamer + combobox1.selecteditemを含むアイテムの代わりに選択される傾向があります。だから、私は今のコンボボックスで例2を検索する場合、2の日付を含むすべての項目は、 "Kamer:2"を含む項目の代わりに選択されます。 –

+0

"if"行にブレークポイントを設定し、comboBoxを確認します。 SelectedValueは "i"の値と比較され、項目を通る各ループに対してこれを行い、選択された値と比較するたびに "i"が真になる理由を確認します。 –

関連する問題