【C++/CLI】コンボボックスの値と文字列比較、一致した場合インデックスを返す

このQ&Aのポイント
  • VC++2005の.NET、言語はC++/CLIにてアプリを作成しています。コンボボックスの中に、下記値が入っているとします。
  • これらの値に対し、String型の変数に格納された文字列「bbb」で、コンボボックスの中に入った値と比較していき、値が等しければ、コンボボックスのインデックス(この場合は「1」)を返すというプログラムを作成したいのですが、そのような処理を実現させるような、コンボボックスのメンバ関数、APIなどについてご存知の方おられましたら、ご教示お願い致します。
  • 下記に雛形を記載します。 String str; str = "bbb"; //ここにコンボボックスの中の値と順番に比較する処理 if ( 比較結果が等しい ) { //該当する値のインデックスを返す }
回答を見る
  • ベストアンサー

【C++/CLI】コンボボックスの値と文字列比較、一致した場合インデックスを返す

VC++2005の.NET、言語はC++/CLIにてアプリを作成しています。 コンボボックスの中に、下記値が入っているとします。 【コンボボックス】 aaa bbb ccc これらの値に対し、String型の変数に格納された文字列「bbb」で、 コンボボックスの中に入った値と比較していき、値が等しければ、 コンボボックスのインデックス(この場合は「1」)を返すという プログラムを作成したいのですが、そのような処理を実現させるような、 コンボボックスのメンバ関数、APIなどについてご存知の方おられましたら、 ご教示お願い致します。 下記に雛形を記載します。 String str; str = "bbb"; //ここにコンボボックスの中の値と順番に比較する処理 if ( 比較結果が等しい ) { //該当する値のインデックスを返す }

質問者が選んだベストアンサー

  • ベストアンサー
  • reset_cat
  • ベストアンサー率68% (94/138)
回答No.1

こんな感じですかね? String str; str = "bbb"; //ここにコンボボックスの中の値と順番に比較する処理 int nIdx = this->comboBox1->Items->Count - 1; while(nIdx >= 0) { String^ strComp = this->comboBox1->Items[nIdx]->ToString(); if(strComp == str) // 比較結果が等しい { //該当する値のインデックスを返す break; } nIdx--; } // この時点で見つかった場合、nIdxは該当インデックス、 // 見つからなかった場合、nIdxは-1になる

zigen8513
質問者

お礼

御回答ありがとうございます。 おかげで期待動作をさせることが出来ました。 ありがとうございました。

関連するQ&A

  • 【C++/CLI】コンボボックスの値を取得したい

    VC++2005の.NETで言語はC++/CLIにてアプリを作成しています。 コンボボックスに下記値が挿入されています。 aaa bbb インデックス「1」を指定して、「bbb」の文字列を、 String型で取得したいのですが、方法が分かりません。 素人ながら、下記コードも試してみましたが、検討違いでした。 String^ str = this->cmbTest->GetItemText( 1 ); 初歩的な質問で申し訳ないですが、 方法をご存知の方、ご教示お願い致します。

  • 【C++/CLI.NET】コンボボックスの値の設定・取得

    VC++2005の.NET、言語はC++/CLIでアプリを作成しています。 コンボボックスについて、質問が二点あります。 (1) コンボボックスのItemsプロパティにて下記値をセットし、 【セットした値】 aaa bbb ccc アプリ実行時に、コンボボックスの初期表示として、 二番目の値「bbb」を表示させたいのですが、 方法が分かりません。 (2) あるタイミングで、コンボボックスの現在選択されている値が、 何番目の値かを取得する方法が分かりません。 例)bbbが選択されているなら、二番目。 あと、当方.NET学習中であり、コンボボックスのような基本コントロールの使い方を解説したサイトや、 Tipsなど、おすすめサイトも一緒に教えて頂けると非常に助かります。 よろしくお願い致します。

  • コンボボックスの値がうまく取得出来ません。

    VC++ MFCを使用しています。 コンボボックスのリストから項目が選択されるたびに その値を元にリストを更新しようとしているのですが、 コンボボックスのリストが変更されたイベント OnCbnSelchangeComboAlmselect() の中で現在の表示値を m_comBoxAlmSelect.GetWindowText(str); で取得しているのですが、 strに最新の値ではなく、選択する前の値が取得されてしまいます。 使用するイベントを間違えているのでしょうか?

  • 【C++/CLI】文字列管理関数の作成

    VC++2005の.NET、言語はC++/CLIでアプリを作成しています。 String型の文字列を管理するクラスを作成しようと思います。 自分ではどのようなものを作成したいのか、イメージはついているのですが、 CLIの知識、技術が足りず、なかなか作成することが難しい状態です。 下記にイメージを記載しますので、有識者の方々アドバイス頂けませんでしょうか。 よろしくお願い致します。 文字列管理クラス「TextTbl」 【TextTbl.h】 enum { STR_TEST1, //格納したい文字列1のID STR_TEST2 //格納したい文字列2のID // ・・・   //ここに追加したい文字列のIDを追加していく } String^ getText( int id ); 【TextTbl.cpp】 // 文字列を取得する関数(引数は文字列のID) String^ TextTbl::getText( int id ) { //文字列のテーブルを定義する処理(文字列IDと文字列の文言が対になって定義されている) //IDを元に文字列を検索し取得する処理 return str; //検索した結果のString型文字列を返す }

  • コンボボックスの値が消えてしまいます。

    コンボボックスの値が消えてしまいます。 フォーム(1)にコンボボックスA(値集合ソースはテーブル1)があります、この リスト外入力時で別フォーム(2)(レコード追加用)を開きテーブル1にレコードを追加、 フォーム(2)を閉じる時にコンボボックスAをリクエリかけてフォーム(1)に戻るとコンボボックスAが空になっているのでリストを開き選択し直さなければいけません! フォーム(1)に戻った時コンボボックスAに入力した値を選択させておくにはどの様にすれば良いか アドバイスよろしくお願いいたします。 WIN XP ACCESS 2003で作成しています。

  • コンボボックスの文字を大きくしたい

    このサイトの中でコンボボックスの作成方法を知り利用致しました。   (手順)    (1)任意のセルにコンボボックスに反映させたい文字を作成する    (2)メニューバーより     [データ]⇒[入力規則]      [設定]タブより”入力値の種類”を”リスト”にし、       元の値を(1)で作成した文字を選択する ですが、この方法では、コンボボックスで表示される文字が 小さく見づらいものでした。 コンボボックス内で表示される文字の大きさを変更する方法を 教えていただけないでしょうか?

  • 【C++/CLI】String型文字列の位置を指定して値を取り出す

    VC++2005、.NET2.0、C++/CLIにてWindowsアプリを作成しています。 String型に格納された文字列の、位置を指定して値を取り出すには、 どのような方法を用いればよいのでしょうか? 基本的な質問で申し訳ありませんが、ご教示よろしくお願い致します。 例) String^ st = "abあいcde"; //四番目の値を取り出す⇒「い」を取り出す

  • 文字列の比較をしたい

    String str1 = "北海道" String str2 = "北海道" str1とstr2が同じ場合にある処理をしたい場合、比較のところの記述はどのように書けばよいのでしょうか。 単純に If str1 = str2 Then ~~~~~ Else   ~~~~ End If でよいのでしょうか。 環境はVB.NETです。

  • コンボボックスの値判定

    コンボボックスの値を判定して、処理を分岐させる方法がわかりません。よろしくお願いします。 VisualBasic .NET2003を使用しています。 Select Case コンボボックス case 0 処理1 case 1      処理2 case 2      処理3 End select

  • コンボボックスへの値の編集方法について

    ACCESSで複数のフォームにコンボボックスを配置しています。どのフォームのコンボボックスにも同じようにコンボボックスの値を設定します。それぞれプロパティの値リストを設定することなく、共通のモジュールを作成してそこでADDITEMできるようにしたいと考えています。 モジュールにどのようにコンボボックスを引数として渡したらよいか、またモジュールではどのように引数を受け取り、どのようにadditemしたらよいか教えていただけないでしょうか。 よろしくお願いします。