あなたが探している情報は、この日記には記されていない可能性が高いです。(検索で来た人用)
にらどんは一杯500円。尚、出前は承っておりません。ご了承下さい。

SelectedValueに設定できるのはクラスなので
ToStringに固執しなければ自作メソッドでなんとかなったり。
謎なのが、自作メソッドだと普通に作動するところ。
なんで?
キャスト使うけど、こっちで問題ないならこの方式でやろうかな。


ValueMemberプロパティがString^型なので、比較が可能なのです。
さらに、初期値が空文字""であることも割れています。
これによりValueMemberが設定される以前のToStringと以後のToStringのより分けに成功しますた。ぱちぱち。
ValueMemberに設定したプロパティがint型の場合。

int i = 0;
String^ str = "";
if (ListBox1->ValueMember != "") {
   str = ListBox1->SelectedValue->ToString();
   i = Convert::ToInt32(str);
}

ToStringの内部はValueMemberが決定されてしまうと全く無意味になる模様。理屈は不明。
ここでは混乱を防ぐため二行に分けていますが、もちろんstrを宣言せずに1行で済ませても同じ動作をします。
ValueMemberではint型のプロパティを返すように設定してあるのですが、ToStringを経由して呼び出すために、String^型として返ってくるようです。
いや、ValueMemberが元々String^型だからそれが返ってきてるのかな。
まぁなんにしろ、ValueMemberで設定したプロパティを呼び出すにはこの方法しかないようです。
例題では、textBox1->Textに直接代入したいからキャスト不要でコンパイル可能なToStringを使ってるんじゃないかなぁ。
今日はValueMemberで設定したInt型を取り出せたので
明日はこれ以外の手軽な取得法を研究します。


あーホント馬鹿な作業だなー。誰かが書いたコードを推測するのって。


全く関係ないけど最近switch文全然使わなくなった。
使いどころがいまいちわからない。3つ以上の分岐って滅多にしない。
使わなすぎてつづり忘れたwwww switch?swicth?