トップ回答者
コンボボックスのリサイズ

質問
-
C# において、コンボボックスをリサイズすると、Text プロパティが自動で切り替わって
しまう・・・という症状に悩んでいます。
症状
1) ComboBox をフォームに張り付ける。
2) Items プロパティに "1234" を設定する。
3) Text プロパティに "12" と入力する。
4) コンストラクタで Width = 200; などとして、コンボボックスのサイズを変更する
ようにコーディングする。
プログラムを起動すると、Text プロパティは "12" ではなく、"1234" と変更されてし
まいます。つまり、自動的にアイテムが選択されてしまうのです。
これは仕様なのでしょうか。それとも私の環境に問題があるのか・・・。
よろしくお願いします。
回答
-
sankuns さんからの引用 これは仕様なのでしょうか。それとも私の環境に問題があるのか・・・。
XPでもVistaでも同様の動作をしますし、C#に限らずC++のネイティブアプリケーションでも発生します。
仕様か不具合かについては、コンボボックスの動作を定義したドキュメントを読んだことがないため分かりません。
しかし、仕様でも不具合でも、現状はそのような動作をしますし、修正されるとしても当分先の話です。
現状の動作を踏まえた回避・実装をせざる得ません。
基本方針としては、Textプロパティ変更後に、「リサイズしない」とするしかないのではないかと思われます。
デザイナでTextプロパティを設定する関係でそうなってしまうのであれば、コンストラクタのInitializeComponentの後ぐらいで補正(再設定する等)するしかないですねぇ。
すべての返信
-
sankuns さんからの引用 これは仕様なのでしょうか。それとも私の環境に問題があるのか・・・。
XPでもVistaでも同様の動作をしますし、C#に限らずC++のネイティブアプリケーションでも発生します。
仕様か不具合かについては、コンボボックスの動作を定義したドキュメントを読んだことがないため分かりません。
しかし、仕様でも不具合でも、現状はそのような動作をしますし、修正されるとしても当分先の話です。
現状の動作を踏まえた回避・実装をせざる得ません。
基本方針としては、Textプロパティ変更後に、「リサイズしない」とするしかないのではないかと思われます。
デザイナでTextプロパティを設定する関係でそうなってしまうのであれば、コンストラクタのInitializeComponentの後ぐらいで補正(再設定する等)するしかないですねぇ。
-
こんにちは、森田です。
Azuleanさん、有用な情報を投稿してくださりありがとうございます。
sankunsさん、フォーラムのご利用ありがとうございます!
Azuleanさんの投稿は、有用な回答だと思われましたので、
勝手ながら回答済みチェックをつけさせていただきました。
sankunsさんはチェックの解除も可能ですので、ご確認ください。
また、追加でご質問などありましたら、是非投稿をお願いします!
回答済みチェックがつくことにより、sankunsさんと同じような悩みを抱えている方が、
この情報を見つけやすくなります。
有用な回答があった場合は、できるだけ回答済みチェックをつけてくださると嬉しいです。
それでは、これからもフォーラムのご利用よろしくお願いいたします。