- PR -

C1FlexGridのセルをComboBoxとして使用する時のIndex値取得方法

投稿者投稿内容
ブンタ改
会議室デビュー日: 2006/04/05
投稿数: 7
投稿日時: 2006-04-06 22:35
引用:

ghornetyさんの書き込み (2006-04-06 10:55) より:
既に解決済みかも知れませんが

SortedList sl = new SortedList();
sl.Add(0, "A");
sl.Add(1, "B");
sl.Add(2, "B");
sl.Add(3, "C");
C1FlexGrid1.Cols[col].DataType = typeof(int);
C1FlexGrid1.Cols[col].DataMap = sl;

この状態で3番目を選択した場合
C1FlexGrid1[row, col] の値が2
C1FlexGrid1.Cols[col].DataMap[C1FlexGrid1[row, col]]の値がB
になると思います。




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

誤りがありましたらお手数ですがご指摘下さい。
宜しくお願い致します。
ghornety
会議室デビュー日: 2005/08/03
投稿数: 6
投稿日時: 2006-04-07 11:52
引用:

ブンタ改さんの書き込み (2006-04-06 22:35) より:

この状態で3番目を選択した場合
C1FlexGrid1(y,x)の値が1
C1FlexGrid1.Cols(x).DataMap(C1FlexGrid1(y,x))の値がB

誤りがありましたらお手数ですがご指摘下さい。
宜しくお願い致します。




誤りではないみたいです。
自分の記述したコードでテストしてみたら、表示リストに同じ値が存在した場合は
常に先頭アイテムの持つキーが設定されるみたいです。

軽はずみな回答をしてしまい申し訳有りませんでした。orz

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-07 12:23
少し前の返信でも書きましたが、
「同じ値なのに Key が違う」
というシナリオが想定できないんですが... (;^-^)

どんなシナリオを考えてのことかお教え願えませんでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ブンタ改
会議室デビュー日: 2006/04/05
投稿数: 7
投稿日時: 2006-04-07 23:13
引用:

じゃんぬねっとさんの書き込み (2006-04-07 12:23) より:
少し前の返信でも書きましたが、
「同じ値なのに Key が違う」
というシナリオが想定できないんですが... (;^-^)

どんなシナリオを考えてのことかお教え願えませんでしょうか?




ユーザ名のリストを出すコンボなのですが、同姓同名
の方がいる場合の対応ということです。

本当なら同姓同名といっても、ユニークな情報を付加して表示
するべきなのでしょうが、現状同姓同名はいないので、そこまで
の対応はいらないということでして・・。(−−;
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-08 10:59
引用:

ブンタ改さんの書き込み (2006-04-07 23:13) より:

ユーザ名のリストを出すコンボなのですが、同姓同名
の方がいる場合の対応ということです。

本当なら同姓同名といっても、ユニークな情報を付加して表示
するべきなのでしょうが、現状同姓同名はいないので、そこまで
の対応はいらないということでして・・。(−−;


そもそも「同姓同名」の問題は Combo にあるのではなく設計段階にあります。
ユニーク キーを設けても、オペレータからしてみればややこしいですよね。
表示されるその他の情報で判別するにしても、ID でユニークに管理すべきでしょうね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ブンタ改
会議室デビュー日: 2006/04/05
投稿数: 7
投稿日時: 2006-04-08 23:57
引用:

じゃんぬねっとさんの書き込み (2006-04-08 10:59) より:

そもそも「同姓同名」の問題は Combo にあるのではなく設計段階にあります。
ユニーク キーを設けても、オペレータからしてみればややこしいですよね。
表示されるその他の情報で判別するにしても、ID でユニークに管理すべきでしょうね。



その通りだと思います。
明らかに設計段階の問題です。

今回は同姓同名のユーザの登録を認めない方向で
話が纏まりそうです。

色々ご助言ありがとうございました。_(。_。)_

スキルアップ/キャリアアップ(JOB@IT)