无法使用十进制值

时间:2012-07-31 07:47:37

标签: windows-phone-7 windows-phone-7.1

我创建了一个TextBox,其中必须输入货币值,但现在我无法在文本框中输入十进制值的。(点)。我在Text_changed事件中编写了代码。 代码

 int cursorLocation = ((TextBox)(sender)).SelectionStart;

            string inputval = ((TextBox)sender).Text;
            inputval = inputval.Replace("*", "");
            inputval = inputval.Replace("#", "");
            inputval = inputval.Replace(",", "");
            inputval = inputval.Replace(" ", "");
            inputval = inputval.Replace("-", "");
            Decimal inputval1 = Convert.ToDecimal(inputval);

            ((TextBox)sender).Text = inputval1.ToString("###,###");
            cursorLocation = ((TextBox)(sender)).Text.Length;

            //((TextBox)sender).Text = inputval;
            ((TextBox)(sender)).SelectionStart = cursorLocation;

2 个答案:

答案 0 :(得分:0)

这是问题

((TextBox)sender).Text = inputval1.ToString("###,###");

每当您输入新字符时,整个textbox.text都会被格式为###,###

的新文本覆盖

答案 1 :(得分:0)

我刚刚在textchanged事件下做了这个,这很有效,

 try
        {
            string value = TextBox.Text.Replace(",", "");
             long ul;
             if (long.TryParse(value, out ul))
             {
                 TextBox.TextChanged -= TextBox_TextChanged;
                 TextBox.Text = string.Format("{0:#,#}", ul);
                 TextBox.SelectionStart = TextBox.Text.Length;
                 TextBox.TextChanged += TextBox_TextChanged;
                 this.TextBox.MaxLength = 10;
             }
        }
        catch { }