PowerTools InputMan for Windows Forms 8.0J
InvalidInput イベント (EditBase)
使用例 

無効な文字が入力されたときに発生します。
構文
Public Event InvalidInput As EventHandler
public event EventHandler InvalidInput
解説
InvalidInput イベントは、キーボードまたはクリップボードから無効な値を入力しようとしたときに発生します。 クリップボードからの1回の入力は、クリップボードに複数の無効な文字が格納されている場合でも1つの動作とみなされるので、 InvalidInput イベントは1度しか発生しません。

詳細なエラー情報を取得するためには、EventArgs パラメータを InvalidInputEventArgs にキャストします。InvalidInputEventArgs クラスでは、エラー情報が True となっているかどうかでエラーかどうかを判断することができます。取得可能なエラー情報の詳細については、InvalidInputEventArgs クラスを参照してください。
使用例
次のコードは GcNumber コントロールで InvalidInput イベントを使用する方法です。
この例では InvalidInputEventArgs から詳細なエラー情報を取得する方法も示します。
//  Please use the following namespace
//  using System.Windows.Forms;
//  using GrapeCity.Win.Editors;

private ErrorProvider errorProvider1 = new ErrorProvider();

public void WireInvalidInputEvent()
{
    GcNumber gcNumber1 = new GcNumber();
    gcNumber1.InvalidInput += new EventHandler(OnGcNumberInvalidInput);
}

private void OnGcNumberInvalidInput(object sender, EventArgs e)
{
    GcNumber gcNumber1 = (sender as GcNumber);

    // EventArgsパラメータをInvalidInputEventArgsにキャストします。
    InvalidInputEventArgs invalidInputEventArgs = e as InvalidInputEventArgs;
    if (invalidInputEventArgs == null)
    {
        return;
    }

    StringBuilder errorInfo = new StringBuilder();

    // 入力された値が設定された書式に対して無効かどうか
    if (invalidInputEventArgs.HasInvalidChar)
    {
        errorInfo.AppendLine("入力された値は設定された書式に対して無効です。");
    }

    // 入力された値が設定された最大文字数を超えているかどうか
    if (invalidInputEventArgs.MeetsLengthLimit)
    {
        errorInfo.AppendLine("入力された値は設定された最大文字数を超えています。");
    }

    // 入力された値が設定された範囲を超えているかどうか
    if (invalidInputEventArgs.ValueOutOfRange)
    {
        errorInfo.AppendLine("入力された値は設定された範囲の範囲外です。");
    }

    // 範囲は、下記のように最大値・最小値で別々に無効かどうかを取得できます。
    // 入力された値が設定された最大値よりも大きいかどうか
    if (invalidInputEventArgs.ExceedMaxValue)
    {
        errorInfo.AppendLine("入力された値は設定された最大値よりも大きい値です。");
    }

    // 入力された値が設定された最小値よりも小さいかどうか
    if (invalidInputEventArgs.BelowMinValue)
    {
        errorInfo.AppendLine("入力された値は設定された最小値よりも小さい値です。");
    }

    if (errorInfo.Length > 0)
    {
        errorProvider1.SetError(gcNumber1, errorInfo.ToString());
    }
    else
    {
        errorProvider1.SetError(gcNumber1, string.Empty);
    }
}
Private errorProvider1 As New ErrorProvider()

Public Sub WireInvalidInputEvent()
    ' Create an instance of a GcNumber control.
    Dim gcNumber1 As New GcNumber()
    ' Wire the InvalidInput event.
    AddHandler gcNumber1.InvalidInput, AddressOf OnGcNumberInvalidInput
End Sub

Private Sub OnGcNumberInvalidInput(ByVal sender As Object, ByVal e As EventArgs)
    Dim gcNumber1 As GcNumber = TryCast(sender, GcNumber)

    ' EventArgsパラメータをInvalidInputEventArgsにキャストします。
    Dim invalidInputEventArgs As InvalidInputEventArgs = TryCast(e, InvalidInputEventArgs)
    If invalidInputEventArgs Is Nothing Then
        Return
    End If

    Dim errorInfo As New StringBuilder()

    ' 入力された値が設定された書式に対して無効かどうか
    If invalidInputEventArgs.HasInvalidChar Then
        errorInfo.AppendLine("入力された値は設定された書式に対して無効です。")
    End If

    ' 入力された値が設定された最大文字数を超えているかどうか
    If invalidInputEventArgs.MeetsLengthLimit Then
        errorInfo.AppendLine("入力された値は設定された最大文字数を超えています。")
    End If

    ' 入力された値が設定された範囲を超えているかどうか
    If invalidInputEventArgs.ValueOutOfRange Then
        errorInfo.AppendLine("入力された値は設定された範囲の範囲外です。")
    End If

    ' 範囲は、下記のように最大値・最小値で別々に無効かどうかを取得できます。
    ' 入力された値が設定された最大値よりも大きいかどうか
    If invalidInputEventArgs.ExceedMaxValue Then
        errorInfo.AppendLine("入力された値は設定された最大値よりも大きい値です。")
    End If

    ' 入力された値が設定された最小値よりも小さいかどうか
    If invalidInputEventArgs.BelowMinValue Then
        errorInfo.AppendLine("入力された値は設定された最小値よりも小さい値です。")
    End If

    If errorInfo.Length > 0 Then
        errorProvider1.SetError(gcNumber1, errorInfo.ToString())
    Else
        errorProvider1.SetError(gcNumber1, String.Empty)
    End If
End Sub
参照

EditBase クラス
EditBase メンバ

 

 


© 2004-2015 GrapeCity inc. All rights reserved.