- PR -

MaskedTextBox のMaskプロパティについてOSによる結果の差異

1
投稿者投稿内容
Bessi
会議室デビュー日: 2007/08/10
投稿数: 3
投稿日時: 2007-08-10 14:57
初めて投稿いたします。もし下記不明点について解答をお持ちの方、もしくは関連する情報を
ご存知の方がいらしたら教えてください。

(不明点)
Windows2000上で動作するアプリケーションにおいて、MaskedTextBoxのMaskプロパティに
書式を設定した場合、RightToLeftプロパティの値をYesにしても有効にはならないのですか?

(構成:開発環境)
OS:Windows2000 Professional
IDE:Visual Basic 2005 Express Edition 日本語版
Framework:.NET Framework 2.0

(構成:運用)
OS:Windows2000 Professional or Windows XP
Framework:.NET Framework 2.0

(補足)
現在、あるWindowsアプリケーションの開発にかかわっています。
これは非Windowsアプリケーションの画面オペレーションをWindowsPC上でトレーニングする
ためのものです。

その中で数値コード(2桁)を入力する項目の形式として、いわゆる電卓のような流れ方をする
という仕様があります。

これをMaskedTextBoxを用いて実現するため、以下のようにプロパティを設定してありました。

コード:
ImeMode = System.Windows.Forms.ImeMode.Off
InsertKeyMode = System.Windows.Forms.InsertKeyMode.Insert
Location = New System.Drawing.Point(183, 84)
Mask = "99"
Name = "Gyocd"
PromptChar = Global.Microsoft.VisualBasic.ChrW(32)
RightToLeft = System.Windows.Forms.RightToLeft.Yes
Size = New System.Drawing.Size(24, 23)
TabIndex = 1
TextAlign = System.Windows.Forms.HorizontalAlignment.Right



この時、
「WindowsXP上では実現できたがWindows2000上だと左詰で入力する方式になっている」
ということで調査したところ、
  • 「Mask」プロパティの書式設定をなくす
  • 「TextAlign」プロパティを「Right」から「Left」に変更する

とした場合は仕様通りとなることまでは理解できました。

ただ、「Mask」プロパティに書式設定があると必ず左詰になります。

これはWindows2000だから発生するのでしょうか。
また、こうしたプロパティの組み合わせで当初の仕様を実現することは
できないものなのでしょうか。

何か対策の手がかりになるものがあれば、ぜひご教示ください。
よろしくお願いいたします。
1

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