再度、質問させてください。
MaskedTextBoxにフォーマット、A-AAA-AAAA
を設定しています。
この場合、入力有無をチェックするにはどうすればいいでしょうか。
dim a as MaskedTextBox
if a.text = " - - " then
・・・
といったやり方が一般的でしょうか。
TextMaskFormat プロパティを ExcludePromptAndLiterals にしておけば、
単純に「If MaskedTextBox1.Text = "" Then」と書けますよ。
Public Class Form1
#Region "コントロール名や位置の構成を伝えるため、デザイナ画面でコントロールを貼るかわりに、コードでコントロールを生成しています"
Private maskedTextBoxes As New List(Of MaskedTextBox)()
Private button1, button2 As Button
Public Sub New()
InitializeComponent()
Font = New Font("MS Gothic", 12)
button1 = New Button() With {
.Name = "button1",
.Text = "確認",
.Bounds = New Rectangle(50, 250, 120, 30)
}
button2 = New Button() With {
.Name = "button2",
.Text = "クリア",
.Bounds = New Rectangle(200, 250, 120, 30)
}
Controls.AddRange({button1, button2})
For n = 0 To 3
maskedTextBoxes.Add(New MaskedTextBox() With {
.Name = "maskedTextBox" & CStr(n + 1),
.Location = New Point(50, 50 * n + 30),
.Mask = "A-AAA-AAAA",
.Text = "1-234-5678",
.TextMaskFormat = n
})
Next
Controls.AddRange(maskedTextBoxes.ToArray())
AddHandler button1.Click,
Sub(sender, e)
Dim s As String = ""
maskedTextBoxes.ForEach(
Sub(t)
s &= String.Format("{0}, ""{1}"", {2}" & vbNewLine,
t.Name, t.Text, t.TextMaskFormat)
End Sub
)
MsgBox(s, vbInformation)
End Sub
AddHandler button2.Click, Sub(sender, e) maskedTextBoxes.ForEach(Sub(t) t.Clear())
End Sub
#End Region
End Class
魔界の仮面弁士さんの教えていただいたプロパティに変更することで、思った動作にすることが出来ました。
わざわざ例もつけてくださり、ありがとうございます。
内容は私には難しいので、よくわからないところもありますが、
勉強していきたいと思います。
今後、お世話になることもあると思いますが、よろしくお願い致します。
ツイート | ![]() |