Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 Windows phone:文本框中不允许有多个点?_C# 4.0_Windows Phone 8 - Fatal编程技术网

C# 4.0 Windows phone:文本框中不允许有多个点?

C# 4.0 Windows phone:文本框中不允许有多个点?,c#-4.0,windows-phone-8,C# 4.0,Windows Phone 8,我正在用WindowsPhone8编写应用程序 我需要提供一个文本框,这将允许用户只输入“数字”,如果需要,只有一个点” 我设置了,但它允许多个点 如何在windows phone的文本框中设置单点?设置一个事件,每当文本发生如下更改时触发该事件: <TextBox x:Name="textBox1" TextChanged="textBox1_TextChanged" /> 然后在事件函数循环中遍历文本,对点进行计数,如果点计数大于1,则删除所述点 编辑:你说如果我能提供一

我正在用WindowsPhone8编写应用程序

我需要提供一个文本框,这将允许用户只输入“数字”,如果需要,只有一个点”

我设置了
,但它允许多个点


如何在windows phone的文本框中设置单点?

设置一个事件,每当文本发生如下更改时触发该事件:

 <TextBox x:Name="textBox1" TextChanged="textBox1_TextChanged" />

然后在事件函数循环中遍历文本,对点进行计数,如果点计数大于1,则删除所述点

编辑:你说如果我能提供一个示例算法:

        string str = textBox1.Text;
        int dotCount = 0;
        for (int i = 0; i < str.Length; i++)
        {
            if (str[i] == '.')
            {
                dotCount++;
                if (dotCount > 1)
                {
                    str.Remove(i, 1);
                    i--;
                    dotCount--;
                }
            }
        }
string str=textBox1.Text;
int dotCount=0;
对于(int i=0;i1)
{
str.Remove(i,1);
我--;
点计数--;
}
}
}

此代码不能正常工作,因此我做了一些改进。希望能有所帮助!我正在使用KeyUp,但TextChange也可以使用

private void tbMainText_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
{
    TextBox tb = (TextBox)sender; //Getting the textbox which fired the event if you assigned many textboxes to the same event.
    string str = tb.Text;
    int dotCount = 0;
    for (int i = 0; i < str.Length; i++)
    {
        if (str[i] == '.')
        {
            dotCount++;
            if (dotCount > 1)
            {
                str = str.Remove(i, 1); //Assigning the new value.
                i--;
                dotCount--;
            }
        }
    }
    tb.Text = str;
    tb.Select(tb.Text.Length, 0); //Positioning the cursor at end of textbox.
}
private void tbMainText\u KeyUp(对象发送方,System.Windows.Input.KeyEventArgs e)
{
TextBox tb=(TextBox)sender;//如果为同一事件分配了多个文本框,则获取触发该事件的文本框。
字符串str=tb.Text;
int dotCount=0;
对于(int i=0;i1)
{
str=str.Remove(i,1);//赋值。
我--;
点计数--;
}
}
}
tb.Text=str;
tb.Select(tb.Text.Length,0);//将光标定位在文本框的末尾。
}