- - PR -
C1FlexGridのセルをComboBoxとして使用する時のIndex値取得方法
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-04-06 22:35
ghornetyさん、レスありがとうございます。 さっそく試させて頂いたのですが、2番目のBを選んでも、3番目のBを選んでも 1が取得されてしまいました。 VB.NETですので、下のようなコーディングにしました。 Dim ComboHash as System.Collections.SortedList ComboHash = new SortedList ComboHash.add(0,"A") ComboHash.add(1,"B") ComboHash.add(2,"B") ComboHash.add(3,"C") C1FlexGrid1.Cols(x).DataType = GetType(Integer) C1FlexGrid1.Cols(x).DataMap = ComboHash この状態で3番目を選択した場合 C1FlexGrid1(y,x)の値が1 C1FlexGrid1.Cols(x).DataMap(C1FlexGrid1(y,x))の値がB 誤りがありましたらお手数ですがご指摘下さい。 宜しくお願い致します。 | ||||
|
投稿日時: 2006-04-07 11:52
誤りではないみたいです。 自分の記述したコードでテストしてみたら、表示リストに同じ値が存在した場合は 常に先頭アイテムの持つキーが設定されるみたいです。 軽はずみな回答をしてしまい申し訳有りませんでした。orz | ||||
|
投稿日時: 2006-04-07 12:23
少し前の返信でも書きましたが、
「同じ値なのに Key が違う」 というシナリオが想定できないんですが... (;^-^) どんなシナリオを考えてのことかお教え願えませんでしょうか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-04-07 23:13
ユーザ名のリストを出すコンボなのですが、同姓同名 の方がいる場合の対応ということです。 本当なら同姓同名といっても、ユニークな情報を付加して表示 するべきなのでしょうが、現状同姓同名はいないので、そこまで の対応はいらないということでして・・。(−−; | ||||
|
投稿日時: 2006-04-08 10:59
そもそも「同姓同名」の問題は Combo にあるのではなく設計段階にあります。 ユニーク キーを設けても、オペレータからしてみればややこしいですよね。 表示されるその他の情報で判別するにしても、ID でユニークに管理すべきでしょうね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-04-08 23:57
その通りだと思います。 明らかに設計段階の問題です。 今回は同姓同名のユーザの登録を認めない方向で 話が纏まりそうです。 色々ご助言ありがとうございました。_(。_。)_ |