テクストボックスをマルチライン=trueに設定します。
①入力可能行数を2行だけにしたい
②1行の入力数を10文字にしたい。
どうするのが良いでしょうか?
テキストを2個で制御するのが良いのでしょうか?
色々な方法がありますが、その程度の事を調べるなら、処理速度も影響しないので、単純に
改行文字の数を調べれば行数が解るし、1行目の文字数と2行目の文字数を調べればすむかと。
例えば、下記のように、後は貴方の仕様に合せて工夫して下さい。
Private Sub Text1_Change()
Dim Mytxt As Variant
Dim i As Long
Mytxt = Split(Text1.Text, vbCrLf)
For i = LBound(Mytxt) To UBound(Mytxt)
If Len(Mytxt(i)) > 10 Then
MsgBox "10文字以上の入力はできません。"
Mytxt(i) = Left$(Mytxt(i), 10)
End If
If i = 1 Then
Text1.Text = Mytxt(0) & vbCrLf & Mytxt(1)
ElseIf i > 1 Then
MsgBox "2行以上の入力はできません"
Exit For
End If
Next i
End Sub
失礼しました。 .NET の方でしたね。
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles TextBox1.TextChanged
Dim txtLine() As String
txtLine = TextBox1.Lines
For n As Integer = 0 To txtLine.GetUpperBound(0)
If txtLine(n).Length > 10 Then
MessageBox.Show("10文字以上の入力はできません。")
txtLine(n) = txtLine(n).Substring(0, 10)
End If
If n = 1 Then
TextBox1.Text = txtLine(0) & vbCrLf & txtLine(1)
ElseIf n > 1 Then
MessageBox.Show("2行以上の入力はできません")
Exit For
End If
Next
End Sub
ツイート | ![]() |