ホーム
|
アプリケーション | Tips | ダウンロード | プログラム
| コラム

CBアプリ工房


Tips >   

ComboBox で項目を重複せずに追加 

更新 : 2010/08/01

 


解説:
ComboBox コンポーネントは複数の項目を格納しておき、必要に応じて選択させて使います。
一度入力した項目を追加(項目の追加に関しては Tips 参照)して、選択数を増やしていけるところも便利です。
ただ格納数が増えてくると、同じ項目を追加してしまうなどの誤りが発生します。そのような時は、どう回避したら良いでしょう?

使用例:
以下の例では、Edit1 に文字列を入力して、Button1 をクリックすると、ComboBox1 に項目が格納されていきます。同じ項目を Edit1 に入力しても、追加されません。

準備として Edit、Button、ComboBox を適当に配置します。

Button1 の OnClick イベントハンドラでは、ComboBox1 のリストに入力した文字列を追加する時、IndexOf メソッドを呼び出し、パラメータで指定したリスト項目の位置を判定させています。
IndexOf は指定したリスト項目がリストになければ、-1 を返します。
こうすることで、同じ文字列は重複して追加できなくなります。

//-------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    // コンボボックスに項目を重複せずに追加
    // ヌルは判定させる
    if (Edit1->Text != "" && ComboBox1->Items->IndexOf(Edit1->Text) == -1)
        ComboBox1->Items->Add(Edit1->Text);
}
//-------------------------------------------------------------------



[ ホーム | ページトップ | ブック | リンク | サイトマップ ]
Copyright(c) 2003 Shibu All rights reserved.