MaskやComboコントロールでもEditコントロールと同様にバイト単位で文字数を制限したい。

文書番号 : 20162     文書種別 : 使用方法     最終更新日 : 2006/03/02
文書を印刷する
対象製品
InputMan for .NET 4.0J Windows Forms Edition
詳細
MaskやComboコントロールには、EditコントロールのLengthAsByteプロパティとMaxLengthプロパティは搭載されていません。
しかし、以下のサンプルコードのように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


[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;
}
}
キーワード
機能・仕様

この文書は、以前は次のFAQ IDで公開されていました : 8390