MaskやComboコントロールでもEditコントロールと同様にバイト単位で文字数を制限したい。
対象製品
InputMan for .NET 4.0J Windows Forms Edition
詳細
MaskやComboコントロールには、EditコントロールのLengthAsByteプロパティとMaxLengthプロパティは搭載されていません。
しかし、以下のサンプルコードのようにTextChangingイベントで、文字数のバイト数を調べることで実現できます。
次のサンプルコードは、Maskコントロールで入力可能な最大文字数を8バイトに設定する例です。
しかし、以下のサンプルコードのようにTextChangingイベントで、文字数のバイト数を調べることで実現できます。
次のサンプルコードは、Maskコントロールで入力可能な最大文字数を8バイトに設定する例です。
[VB .NET]
Imports System.Text
Private Sub Mask1_TextChanging(ByVal sender As Object, ByVal e As GrapeCity.Win.Input.TextChangingEventArgs) Handles Mask1.TextChanging
Dim sjis As Encoding = Encoding.GetEncoding("shift-jis")
If sjis.GetByteCount(e.Result) > 8 Then
e.Cancel = True
End If
End Sub
Imports System.Text
Private Sub Mask1_TextChanging(ByVal sender As Object, ByVal e As GrapeCity.Win.Input.TextChangingEventArgs) Handles Mask1.TextChanging
Dim sjis As Encoding = Encoding.GetEncoding("shift-jis")
If sjis.GetByteCount(e.Result) > 8 Then
e.Cancel = True
End If
End Sub
[C#]
using System.Text;
private void mask1_TextChanging(object sender, GrapeCity.Win.Input.TextChangingEventArgs e)
{
Encoding sjis = Encoding.GetEncoding("shift-jis");
if (sjis.GetByteCount(e.Result) > 8)
{
e.Cancel = true;
}
}
using System.Text;
private void mask1_TextChanging(object sender, GrapeCity.Win.Input.TextChangingEventArgs e)
{
Encoding sjis = Encoding.GetEncoding("shift-jis");
if (sjis.GetByteCount(e.Result) > 8)
{
e.Cancel = true;
}
}
キーワード
機能・仕様
この文書は、以前は次のFAQ IDで公開されていました : 8390