我正在 Windows Phone 8 中编写应用程序。
我需要提供一个文本框,允许用户只输入“数字”,如果需要,只输入一个点“。
我设置<TextBox InputScope="Number" />
但它允许多个点。
如何在 windows phone 的文本框中设置单点?
我正在 Windows Phone 8 中编写应用程序。
我需要提供一个文本框,允许用户只输入“数字”,如果需要,只输入一个点“。
我设置<TextBox InputScope="Number" />
但它允许多个点。
如何在 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--;
}
}
}
此代码无法正常工作,因此我进行了一些改进..希望对您有所帮助!我正在使用 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.
}