[リストへもどる]
一括表示

投稿時間:2003/08/23(Sat) 12:04
投稿者名:tonti
Eメール:
URL :
タイトル:
テキストのAlignmentプロパティ
テキストボックスに入力された文字列を判別して、
数値なら右寄せにしたいのですが、
テキストボックスのAlignmentプロパティは実行時には変更できません。

なにか別の方法で右寄せにする手段はありますでしょうか?

投稿時間:2003/08/23(Sat) 12:35
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: テキストのAlignmentプロパティ
> テキストボックスのAlignmentプロパティは実行時には変更できません。
これは、Windowsの仕様です。
右寄せ指定は、コントロールを生成する時には指定できますが、
生成した後で変更する事はできないのです。そのため、たとえAPIを
使用しても、あとからAlignmentを修正する事は出来ません。

# VBのTextBoxコントロールも、開発環境で Alignmentが変更された時には、
# TextBox自体が作り直されているのです。


> なにか別の方法で右寄せにする手段はありますでしょうか?
右寄せ指定のテキストボックスも非表示で保持しておき、
数値だった時は、それを.Visible=Trueに戻して使用するようにしてください。

投稿時間:2003/08/23(Sat) 18:43
投稿者名:tonti
Eメール:
URL :
タイトル:
ありがとうございました。
なるほど、そうですか。参考になりました。
テキストのAlignmentプロパティは意外と厄介ですね。
ラベルや、チェックボックス、オプションボタンなどは実行時に
変更できるのに・・・。

貴重な情報ありがとうございました。

投稿時間:2003/08/24(Sun) 05:12
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
蛇足までに
> ラベルや、チェックボックス、オプションボタンなどは実行時に
> 変更できるのに・・・。

実は、チェックボックスとオプションボタンもまた、テキストボックスと全く同等の
制限を持っています。すなわち、「Alignmentは、生成時にしか設定できない」のです。
(VBは、これらのコントロールを右寄せに変更する際に、コントロール自体を再生成しています)

VB6では、実行時にもチェックボックスを右寄せにできますが、古いバージョンのVBでは、
テキストボックスと同様、実行時にAlignmentを変更できない仕様になっていました。
(なお、VB.NETでは、テキストボックスも実行時に右寄せに修正できるようになっています)

# ちなみに、実行時にチェックボックスのAlignmentを変更すると、コントロールが
# 再生成されるため、そのチェックボックスの hWndプロパティの値が変化します。