0

アルファベットで書きたいのですが、書き方String.Foratを教えてください通貨のパターンは知っていますが、アルファベットがわかりません。アルファベットで書くことはできStringFormat = "{}{A-Z,a-z}"ますか?

    StringFormat="{}{0:C}"

検証を行っています。textBoxにアルファベットのみを入力する必要があります。最初の文字大文字と小文字の残りが必要です。数値を入力するとエラーが表示されますが、WPF検証を使用しますが、方法がわかりません。アルファベットにはStringFormatを使用します

4

1 に答える 1

1
public class MyTextBox: TextBox
{
  public MyTextBox()
{
    this.PreviewTextInput += new TextCompositionEventHandler(TextBox_PreviewTextInput);
    this.AddHandler(DataObject.PastingEvent, new DataObjectPastingEventHandler(OnPaste));
}

private void OnPaste(object sender, DataObjectPastingEventArgs e)
{            
    if (e.DataObject.GetDataPresent(typeof(String)))
    {
        String text = (String)e.DataObject.GetData(typeof(String));
        if (!IsTextAllowed(text))
        {
            e.CancelCommand();
        }
    }
    else
    {
        e.CancelCommand();
    }
}

void TextBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
    e.Handled = !IsTextAllowed(e.Text);
}

private static bool IsTextAllowed(string text)
{
    Regex regex = new Regex("^[a-zA-Z]+$"); //regex that matches disallowed text
    return regex.IsMatch(text);
}
}

上記のようなcustomTextBoxを使用する

于 2012-10-26T20:59:26.510 に答える