teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

少し修正

2020/09/07 00:51

投稿

退会済みユーザー
answer CHANGED
@@ -1,4 +1,4 @@
1
- MaxLengthはテキストボックスに直接キーボード入力やペーストされた文字列には適用されますが、プログラム内で追加した文字列には適用されません。文字列追加時にメソッドを通してMaxLengthをチェックするなりして、自分で何らかの方法で制限を行う必要があります。
1
+ MaxLengthはテキストボックスにユーザーが直接キーボード入力やペーストされた文字列には適用されますが、プログラム内で追加した文字列には適用されません。文字列追加時にメソッドを通してMaxLengthをチェックするなりして、自分で何らかの方法で制限を行う必要があります。
2
2
 
3
3
  簡単な例ですが、下記の例はAddTextを通すことでMaxLengthを超えないようにしています。
4
4
 

3

サンプルソースを追加

2020/09/07 00:51

投稿

退会済みユーザー
answer CHANGED
@@ -1,2 +1,21 @@
1
- MaxLengthはテキストボックスに直接キーボード入力やペーストされた文字列には適用されますが、プログラム内で追加した文字列には適用されません。
1
+ MaxLengthはテキストボックスに直接キーボード入力やペーストされた文字列には適用されますが、プログラム内で追加した文字列には適用されません。文字列追加時にメソッドを通してMaxLengthをチェックするなりして、自分で何らかの方法で制限を行う必要があります。
2
+
2
- 文字列追加時にメソッドを通してMaxLengthをチェックするして、自分で何らかの方法で制限を行う必要があります。
3
+ 簡単な例ですが、下記の例はAddTextを通すことでMaxLengthを超えいようにしてます。
4
+
5
+ ```csharp
6
+ private void btn1_Click(object sender, EventArgs e)
7
+ {
8
+ AddText(btn1.Text);
9
+ }
10
+
11
+ public void AddText(string text)
12
+ {
13
+ int addLen = Math.Min(textBox1.MaxLength - textBox1.Text.Length, text.Length);
14
+ if( addLen<=0 )
15
+ {
16
+ return;
17
+ }
18
+
19
+ textBox1.Text += text.Substring(0, addLen);
20
+ }
21
+ ```

2

少し修正

2020/09/07 00:50

投稿

退会済みユーザー
answer CHANGED
@@ -1,2 +1,2 @@
1
1
  MaxLengthはテキストボックスに直接キーボード入力やペーストされた文字列には適用されますが、プログラム内で追加した文字列には適用されません。
2
- 追加時にメソッドを通して文字列長をチェックするなり、自分で何らかの方法で制限を行う必要があります。
2
+ 文字列追加時にメソッドを通してMaxLengthをチェックするなりして、自分で何らかの方法で制限を行う必要があります。

1

少し修正

2020/09/07 00:28

投稿

退会済みユーザー
answer CHANGED
@@ -1,3 +1,2 @@
1
- MaxLengthはキーボード入力やペーストされた文字列には適用されますが、
1
+ MaxLengthはストボックスに直接キーボード入力やペーストされた文字列には適用されますが、プログラム内で追加した文字列には適用されません。
2
- プログラム内で追加した文字列には適用されません。
3
2
  追加時にメソッドを通して文字列長をチェックするなり、自分で何らかの方法で制限を行う必要があります。