C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: 文字数制限


(過去ログ 173 を表示中)

[トピック内 11 記事 (1 - 11 表示)]  << 0 >>

■99583 / inTopicNo.1)  文字数制限
  
□投稿者/ teru (1回)-(2022/05/01(Sun) 11:50:44)

分類:[.NET 全般] 

整数:10文字
整数+少数:  14文字
マイナス+整数 11文字
マイナス+整数+少数:  15文字
のように文字制限しています。

テキストボックスに文字数を制限していて(整数10桁、少数2桁入力可能)、数値が小数点ある数値を入力して小数点が選択などで消えてしまうため文字数制限ができません。
小数点だけ消せないようにするか他の方法がわかる方いますでしょうか? エラーメッセージで警告するのはダメみたいです。

引用返信 編集キー/
■99584 / inTopicNo.2)  Re[1]: 文字数制限
□投稿者/ WebSurfer (2470回)-(2022/05/01(Sun) 11:55:08)
No99583 (teru さん) に返信

何を何で作っているかぐらいは質問の一行目に書きましょう。
引用返信 編集キー/
■99585 / inTopicNo.3)  Re[2]: 文字数制限
□投稿者/ teru (3回)-(2022/05/01(Sun) 12:03:56)
No99584 (WebSurfer さん) に返信
> ■No99583 (teru さん) に返信
>
> 何を何で作っているかぐらいは質問の一行目に書きましょう。
失礼いたしました。
vb.netです。
数値1、2を入力して演算子を選択して結果を出すプログラムを作っていてその数値が桁数の制限があります。
引用返信 編集キー/
■99586 / inTopicNo.4)  Re[3]: 文字数制限
□投稿者/ WebSurfer (2471回)-(2022/05/01(Sun) 12:10:59)
No99585 (teru さん) に返信

>>何を何で作っているかぐらいは質問の一行目に書きましょう。
> 失礼いたしました。
> vb.netです。


「何を何で作っている」というのは、例えば「Windows Forms アプリを Visual Studio 2022 でフレームワーク
に .NET Framework 4.8 を選んで作っています」ということが知りたかったのです。
引用返信 編集キー/
■99589 / inTopicNo.5)  Re[4]: 文字数制限
□投稿者/ teru (4回)-(2022/05/01(Sun) 12:26:55)
No99586 (WebSurfer さん) に返信
> ■No99585 (teru さん) に返信
>
> >>何を何で作っているかぐらいは質問の一行目に書きましょう。
>>失礼いたしました。
>>vb.netです。
>
>
> 「何を何で作っている」というのは、例えば「Windows Forms アプリを Visual Studio 2022 でフレームワーク
> に .NET Framework 4.8 を選んで作っています」ということが知りたかったのです。

失礼いたしました!
Windows Forms アプリ, visualstudio2017 ,NET Framework 4.5.2で作っています
引用返信 編集キー/
■99590 / inTopicNo.6)  Re[5]: 文字数制限
□投稿者/ WebSurfer (2474回)-(2022/05/01(Sun) 12:28:07)
No99589 (teru さん) に返信

> Windows Forms アプリ, visualstudio2017 ,NET Framework 4.5.2で作っています

MaskedTextBox クラスの使用は検討しましたか?
引用返信 編集キー/
■99592 / inTopicNo.7)  Re[6]: 文字数制限
□投稿者/ teru (6回)-(2022/05/01(Sun) 12:31:40)
No99590 (WebSurfer さん) に返信
> ■No99589 (teru さん) に返信
>
>>Windows Forms アプリ, visualstudio2017 ,NET Framework 4.5.2で作っています
>
> MaskedTextBox クラスの使用は検討しましたか?
それはどういったことができるのでしょうか?

引用返信 編集キー/
■99599 / inTopicNo.8)  Re[1]: 文字数制限
□投稿者/ 魔界の仮面弁士 (3341回)-(2022/05/01(Sun) 14:44:08)
No99583 (teru さん) に返信
> 整数:10文字
> 整数+少数:  14文字
> マイナス+整数 11文字
> マイナス+整数+少数:  15文字

少数→小数という誤記はさておき:
小数点記号も一桁と考えると、小数点以下 3 桁ということですか?


こういう場合には TextBox を使うのではなく、
NumericUpDown を使うことを検討してみてください。


デザイン時に、NumericUpDown のプロパティで
 DecimalPlaces = 3
 Hexadecimal = False
 Maximum = 9999999999.999
 Minimum = -9999999999.999
 TextAlign = Right
 ThowsandsSeparator = False (True だと 3 桁区切りのカンマが付く)
 Increment = 任意 (0.001 とか 1 とか 0 とか)
に設定しておけば、求める機能に近いものになると思います。

なお、このコントロールでは、
 NumericUpDown1.Text = "123.456"
ではなく、
 NumericUpDown1.Value = 123.456D
のように、Value プロパティを使う必要があります。
引用返信 編集キー/
■99600 / inTopicNo.9)  Re[1]: 文字数制限
□投稿者/ KOZ (233回)-(2022/05/01(Sun) 21:23:14)
No99583 (teru さん) に返信
> テキストボックスに文字数を制限していて(整数10桁、少数2桁入力可能)、数値が小数点ある数値を入力して小数点が選択などで消えてしまうため文字数制限ができません。
> 小数点だけ消せないようにするか他の方法がわかる方いますでしょうか? エラーメッセージで警告するのはダメみたいです。

こういうのは、ある操作をしたときに、操作後のテキストが条件に合わなければ操作を無視する、あるいは操作を無視した上でテキストを編集すれば良いです。
文字が消える操作というと、以下が挙げられます。

・Delete キーが押されたとき → KeyDown イベントで捕捉
・BackSpace キーが押されたとき → KeyDown イベント もしくは KeyPress イベントで捕捉
・クリップボード操作(WM_PASTE/WM_CUT/WM_CLEAR) → TextBox を継承したクラスを作り、WndProc をオーバーライド、もしくは NativeWindow クラスを使う


引用返信 編集キー/
■99614 / inTopicNo.10)  Re[2]: 文字数制限
□投稿者/ teru (8回)-(2022/05/04(Wed) 16:24:45)
No99599 (魔界の仮面弁士 さん) に返信
> ■No99583 (teru さん) に返信
>>整数:10文字
>>整数+少数:  14文字
>>マイナス+整数 11文字
>>マイナス+整数+少数:  15文字
>
> 少数→小数という誤記はさておき:
> 小数点記号も一桁と考えると、小数点以下 3 桁ということですか?
>
>
> こういう場合には TextBox を使うのではなく、
> NumericUpDown を使うことを検討してみてください。
>
>
> デザイン時に、NumericUpDown のプロパティで
>  DecimalPlaces = 3
>  Hexadecimal = False
>  Maximum = 9999999999.999
>  Minimum = -9999999999.999
>  TextAlign = Right
>  ThowsandsSeparator = False (True だと 3 桁区切りのカンマが付く)
>  Increment = 任意 (0.001 とか 1 とか 0 とか)
> に設定しておけば、求める機能に近いものになると思います。
>
> なお、このコントロールでは、
>  NumericUpDown1.Text = "123.456"
> ではなく、
>  NumericUpDown1.Value = 123.456D
> のように、Value プロパティを使う必要があります。


テキストボックスで制限したいです。
整数部分と少数部分に分けて考えて制限できますかね?
left,midを使えばできるんでしょうか?

引用返信 編集キー/
■99626 / inTopicNo.11)  Re[2]: 文字数制限
□投稿者/ teru (10回)-(2022/05/07(Sat) 12:23:32)
No99600 (KOZ さん) に返信
> ■No99583 (teru さん) に返信
>>テキストボックスに文字数を制限していて(整数10桁、少数2桁入力可能)、数値が小数点ある数値を入力して小数点が選択などで消えてしまうため文字数制限ができません。
>>小数点だけ消せないようにするか他の方法がわかる方いますでしょうか? エラーメッセージで警告するのはダメみたいです。
>
> こういうのは、ある操作をしたときに、操作後のテキストが条件に合わなければ操作を無視する、あるいは操作を無視した上でテキストを編集すれば良いです。
> 文字が消える操作というと、以下が挙げられます。
>
> ・Delete キーが押されたとき → KeyDown イベントで捕捉
> ・BackSpace キーが押されたとき → KeyDown イベント もしくは KeyPress イベントで捕捉
> ・クリップボード操作(WM_PASTE/WM_CUT/WM_CLEAR) → TextBox を継承したクラスを作り、WndProc をオーバーライド、もしくは NativeWindow クラスを使う
>
>
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -