• WPF中自定义只能输入数字的TextBox


    KeyDown事件:2011-04-28优化Tab And RightCtrl

    private void tbCount_KeyDown(object sender, KeyEventArgs e)
    {
    TextBox txt
    = sender as TextBox;

    //屏蔽非法按键
    if ((e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) || e.Key == Key.Decimal || e.Key.ToString() == "Tab")
    {
    if (txt.Text.Contains(".") && e.Key == Key.Decimal)
    {
    e.Handled
    = true;
    return;
    }
    e.Handled
    = false;
    }
    else if (((e.Key >= Key.D0 && e.Key <= Key.D9) || e.Key == Key.OemPeriod) && e.KeyboardDevice.Modifiers != ModifierKeys.Shift)
    {
    if (txt.Text.Contains(".") && e.Key == Key.OemPeriod)
    {
    e.Handled
    = true;
    return;
    }
    e.Handled
    = false;
    }
    else
    {
    e.Handled
    = true;
    if (e.Key.ToString() != "RightCtrl")
    {
    MessageBox.Show(
    this.Resources["Txt_InnerPage_ConnPointManage_TabMyConnPoint_AddMyCloudSeeNum_Prompt"].ToString(), this.Resources["Txt_InnerPage_ConnPointManage_TabMyConnPoint_AddMyCloudSeeNum_PromptTitle"].ToString(), MessageBoxButton.OK, MessageBoxImage.Warning);
    }
    }
    }

    TextChanged事件:

     

    private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
    {
    //屏蔽中文输入和非法字符粘贴输入
    TextBox textBox = sender as TextBox;
    TextChange[] change
    = new TextChange[e.Changes.Count];
    e.Changes.CopyTo(change,
    0);

    int offset = change[0].Offset;
    if (change[0].AddedLength > 0)
    {
    double num = 0;
    if (!Double.TryParse(textBox.Text, out num))
    {
    textBox.Text
    = textBox.Text.Remove(offset, change[0].AddedLength);
    textBox.Select(offset,
    0);
    }
    }
    }

    

  • 相关阅读:
    吃金沙鼎火锅
    吴中路开了一家Boutique hotel(skyfortune)
    吃韩包子
    丽江
    吃成都淘海阁鲍鱼海鲜汤煲
    2007年最好笑的话剧“乱套了”
    不老药白丽格(玉芙蓉)Briglow (www.briglow.com)
    丽江趣事
    看看这个是什么菜
    这是什么动物?
  • 原文地址:https://www.cnblogs.com/midcn/p/1983818.html
Copyright © 2020-2023  润新知