- PR -

ComboBoxの設定、取得制御

投稿者投稿内容
つくし
会議室デビュー日: 2006/02/13
投稿数: 13
投稿日時: 2006-04-04 18:51
こんにちは。つくしといいます。

--環境--------------------
API:C#
OCX:Inputman for .NET3.0
IDE:VS2003
DB:Oracle9.2i
--------------------------
説明の便宜上
System.Windows.Forms.ComboBoxを"WinCombo"
GrapeCity.Win.Input.Comboを"GraCombo"
特定しないときは、"ComboBox"としてます。

ComboBoxへのDataSourceのバインド、
選択項目の取得処理を行っています。

実装していて、面倒に感じることがあり、機能として提供されて
いるかもと思い、投稿させていただきました。

2つあります。

1.スペース項目の追加有無の制御は、プロパティなどでないのでしょうか?
  ComboBox.DataSource = DataSet
  ComboBox.DisplayMember = "商品名"
  ComboBox.ValueMenber = "商品CD"

  このようにバインドすると、空項目がなく、一度選択をすると、
  未選択状態に戻すことができなくなります。
  
  空項目を追加するには、自分でAddしておくしかないのでしょうか?

2.GraComboには、WinComboのSelectedValueのような機能はないのでしょうか?
  GraComboを使っていて、選択されたValueMember値を取得する方法がよくわから
  なくて困っています。

以上、2点です。
宜しくお願いします。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-04 19:05
引用:

つくしさんの書き込み (2006-04-04 18:51) より:

1.スペース項目の追加有無の制御は、プロパティなどでないのでしょうか?


これは空の要素を Add するしかないです。

引用:

2.GraComboには、WinComboのSelectedValueのような機能はないのでしょうか?
  GraComboを使っていて、選択されたValueMember値を取得する方法がよくわからなくて困っています。


CellType からキャストできませんでしたっけ?
でも、GraComboBox は状態が取得できなかったような気がします。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
つくし
会議室デビュー日: 2006/02/13
投稿数: 13
投稿日時: 2006-04-04 19:47
じゃんぬねっとさん、早速のご回答ありがとうございます。

-----------------------------------------------
じゃんぬねっとさんの書き込み (2006-04-04 19:05) より:
つくしさんの書き込み (2006-04-04 18:51) より:

1.スペース項目の追加有無の制御は、プロパティなどでないのでしょうか?

これは空の要素を Add するしかないです。
-----------------------------------------------

わかりました。スペース項目の有無を引数にするような
関数を作り対応したいと思います。

-----------------------------------------------
2.GraComboには、WinComboのSelectedValueのような機能はないのでしょうか?
  GraComboを使っていて、選択されたValueMember値を取得する方法がよくわからなくて困っています。

CellType からキャストできませんでしたっけ?
でも、GraComboBox は状態が取得できなかったような気がします。
-----------------------------------------------


SelectedIndex >= 0 を判定し、選択有無をみてます。
いまは、次のように処理してます。

if(GraComboBox.SelectedIndex >= 0){
string val = GraComboBox.SelectedItem.Value.ToString();
}

なんか自分だけ面倒なことをやっているのかなぁと不安になってます。

アドバイス宜しくお願いします。

PS.引用がうまくできず、みにくくなりすいません。。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-04 22:01
引用:

つくしさんの書き込み (2006-04-04 19:47) より:

string val = GraComboBox.SelectedItem.Value.ToString();


Value 要素を見たいのであれば、これが正しいでしょう。
アイテムの Value を System.String にしているだけですし。

引用:

PS.引用がうまくできず、みにくくなりすいません。。


[quote] 〜[/quote] で括れば良いです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-04-04 22:05
引用:

つくしさんの書き込み (2006-04-04 19:47) より:

わかりました。スペース項目の有無を引数にするような
関数を作り対応したいと思います。


comboBox を継承した、ユーザコントロールを作成し、HasBlank などというプロパティで設定できるようにすればいいです。
つくし
会議室デビュー日: 2006/02/13
投稿数: 13
投稿日時: 2006-04-04 22:37
[quote]
じゃんぬねっとさんの書き込み (2006-04-04 22:01) より:
引用:

つくしさんの書き込み (2006-04-04 19:47) より:

string val = GraComboBox.SelectedItem.Value.ToString();


Value 要素を見たいのであれば、これが正しいでしょう。
アイテムの Value を System.String にしているだけですし。

引用:

PS.引用がうまくできず、みにくくなりすいません。。


引用:
〜[/quote] で括れば良いです。





じゃんぬねっとさん、ご回答ありがとうございます。
ご連絡おそくなりすいません。
つくし
会議室デビュー日: 2006/02/13
投稿数: 13
投稿日時: 2006-04-04 22:43
引用:

Jittaさんの書き込み (2006-04-04 22:05) より:
comboBox を継承した、ユーザコントロールを作成し、HasBlank などというプロパティで設定できるようにすればいいです。


Jittaさんご回答ありがとうございます。
GrapeCityのComboBoxをそのまま使っての実装を予定してたので、
現時点ではカスタムコントロールでの対応は考えてませんでした。
ただ、Comboboxは、Frameworkにて提供されているコントロールを
使用することも検討しようと思います。
その際は、カスタムコントロールの作成を行いたいと思います。

HasBlankのような機能は、いつも必要に感じてます。
ほかにも0づめフォーマット機能など。。。

GrapeCityのコントロールで実装してないということは、
私が感じてるようなニーズがないということなのかな。。。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-04-05 07:27
引用:

つくしさんの書き込み (2006-04-04 22:43) より:

GrapeCityのComboBoxをそのまま使っての実装を予定してたので、
現時点ではカスタムコントロールでの対応は考えてませんでした。


ごめんなさい。
Spread for .NET 内の ComboBox だと勘違いしておりました。

引用:

HasBlankのような機能は、いつも必要に感じてます。
ほかにも0づめフォーマット機能など。。。

GrapeCityのコントロールで実装してないということは、
私が感じてるようなニーズがないということなのかな。。。


InputMan 系のコントロールには実装されている記憶がありますけどね。
自分でやるにしてもそんなに手間ではないですよ > ライブラリ

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

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