locked
在wp8.1silverlight中,如何使用户在textbox中输入时只调出数字键盘并且只能输入数字?可能的话如何限制能够输入的内容? RRS feed

  • 问题

  • 在wp8.1silverlight中,如何使用户在textbox中输入时只调出数字键盘并且只能输入数字?如何限制只能够输入数字1--10?

    开发环境VS2013,wp silverlight 8.1.

    2015年1月6日 7:55

答案

  • 你好,

    对于WP Silverlight 8.1 App,我们应该设置InputScope属性为 Number, 这样只会弹出数字键盘

    然后处理TextChanged事件,判断输入内容是否符合自己要求,以下是我的示例代码:

    <TextBox Name="txtbox1" Height="120" VerticalAlignment="Top" InputScope="Number" TextChanged="TextBox_TextChanged" />

    string oldvalue = string.Empty;
    private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
    {
                if (txtbox1.Text != "")
                {
                    try
                    {
                        var v = Convert.ToInt16(txtbox1.Text);
    
                        if (v > 10)
                        {
                            MessageBox.Show("error");
                            txtbox1.Text = oldvalue;
                        }
                        else
                        {
                            oldvalue = txtbox1.Text;
                        }
                    }
                    catch (Exception ex)
                    {
                        txtbox1.Text = oldvalue;
                    }
                }
    }


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年1月7日 2:07
    版主
  • 不好意思现在手里没有开发环境,没办法发代码。

    思路是这样的:

    1. 选择TextBox的ImeMode为数字

    2. TextChanged事件里对输入的值做判断,同时记录输入之前的值,如果输入的值不在指定范围内,则把Text重置为原来的值。


    希望我的答案能帮助更多的人。

    2015年1月7日 1:18

全部回复

  • 你好。

    你是想让输入的结果在1~10之间吗? 这样的话,有两种办法:

    1. 在TextBox的TextChanged事件中做判断,如果不符合要求,放弃掉;

    2. 直接使用一个ComboBox类的控件,选择1~10之间的值就可以了。


    希望我的答案能帮助更多的人。

    2015年1月6日 8:48
  • 有具体的代码吗?在textchanged的代码中限制只能输入1至10?谢谢!
    2015年1月6日 9:40
  • 不好意思现在手里没有开发环境,没办法发代码。

    思路是这样的:

    1. 选择TextBox的ImeMode为数字

    2. TextChanged事件里对输入的值做判断,同时记录输入之前的值,如果输入的值不在指定范围内,则把Text重置为原来的值。


    希望我的答案能帮助更多的人。

    2015年1月7日 1:18
  • 你好,

    对于WP Silverlight 8.1 App,我们应该设置InputScope属性为 Number, 这样只会弹出数字键盘

    然后处理TextChanged事件,判断输入内容是否符合自己要求,以下是我的示例代码:

    <TextBox Name="txtbox1" Height="120" VerticalAlignment="Top" InputScope="Number" TextChanged="TextBox_TextChanged" />

    string oldvalue = string.Empty;
    private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
    {
                if (txtbox1.Text != "")
                {
                    try
                    {
                        var v = Convert.ToInt16(txtbox1.Text);
    
                        if (v > 10)
                        {
                            MessageBox.Show("error");
                            txtbox1.Text = oldvalue;
                        }
                        else
                        {
                            oldvalue = txtbox1.Text;
                        }
                    }
                    catch (Exception ex)
                    {
                        txtbox1.Text = oldvalue;
                    }
                }
    }


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年1月7日 2:07
    版主