- PR -

ComboBoxのドロップダウンリストの選択

1
投稿者投稿内容
CSharp
会議室デビュー日: 2005/11/28
投稿数: 15
投稿日時: 2005-11-28 15:58
C#.NET(2003)で開発しています。
ComboBoxのDropDownStyleプロパティはDropDownListです。
ドロップダウンリストに表示するItemは、
選択可能なものと選択不可のものがあり、
選択不可の場合には、ドロップダウンリストを閉じない(確定できない)
ようにしたいのですが、どのようにすれば実現できるのかご教授ください。 
(選択可能、選択不可はDataBingings.Tagプロパティに持っているとします)
宜しくお願いいたします.
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2005-11-28 16:31
回答ではありませんが、選択不可の項目が、リストとして表示されることに違和感を感じます。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-11-28 16:33
引用:

CSharpさんの書き込み (2005-11-28 15:58) より:

ComboBoxのDropDownStyleプロパティはDropDownListです。
ドロップダウンリストに表示するItemは、
選択可能なものと選択不可のものがあり、
選択不可の場合には、ドロップダウンリストを閉じない(確定できない)
ようにしたいのですが、どのようにすれば実現できるのかご教授ください。 
(選択可能、選択不可はDataBingings.Tagプロパティに持っているとします)


まず、選択不可のものを抽出して SelectedIndexChanged と Leave (Validating) イベントで判断。
選択不可であれば、Focus を強制的に ComboBox にセットし、
DroppedDown プロパティを true にすることで出来ますが、
最終チェックで一任した方がアクセシブルだと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
CSharp
会議室デビュー日: 2005/11/28
投稿数: 15
投稿日時: 2005-11-28 17:51
burton999様>
確かに仰るとおりですが、以下のような風にしたいのです。
(例)
北海道
 札幌市
 函館市
青森
 青森市
 ・・・
という感じに都道府県は表示のみで選択不可にしたいのです。
(都道府県を表示しないと分かりづらいので)

じゃんぬねっと様>
回答ありがとうございます。
この方法を試してみたいと思います。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-11-28 20:59
全部で、どれくらいの量のリストになるのでしょう?
場合によっては、「県」と「市」を分けた方がいいと思いますが、いかがでしょう?


http://www.codeproject.com/cs/combobox/multicolumncombo.asp
こいつを利用するのも、おもしろいかも。
___________________________________________________________________
□ written by Jitta on 2005/11/28
□ Microsoft MVP :Visual Developer ASP/ASP.NET Oct.2005-Sept.2006
_________________
CSharp
会議室デビュー日: 2005/11/28
投稿数: 15
投稿日時: 2005-11-29 10:27
Jitta様
実際は都道府県と市といったものではなく、件数もそれほど多くありません。
なので、コンボボックスを複数には分けたくないのです。
------------------

じゃんぬねっと様の教えていただいた方法でチャレンジしてみました。
まず、
SelectedIndexChangedのイベント内で、選択可能か選択不可かを判断し、
選択不可の場合は、DroppedDownプロパティをTrueにしてみました。
結果は、一旦ドロップリストを閉じてから開くので、選択したものに初期カーソルが
行かなく、
それを選択したものに戻すといったことを行おうとしてもうまくいきませんでした。
(↑選択されたSelectedIndexを再セットしてみました)

ドロップダウンリストが閉じる前に、選択されたものが選択不可と判定するには、
SelectionChangeCommitedイベントでできますが、このイベントに来たときは
既に選択確定されている為、DroppedDownプロパティをTrueにしてもドロップリストは
閉じてしまいます。
なんとか、ドロップダウンを閉じる前にその選択を無効にするようなことはできない
ものでしょうか?

1

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