输入提示中的电话号码屏蔽

时间:2013-08-19 09:02:39

标签: c# .net windows-phone-7

每个人我都面临着一个问题。我在初始阶段。请忽略愚蠢的问题。 我使用“InputPrompt”控件(从编码有趣的工具包)到以电话号码的形式获取值。当我尝试以123-345-6789的形式输入数字时,光标位置改变并返回到先前的值。代码是:

//事件

input.TextInputStart += new TextCompositionEventHandler(input_TextInputStart);

//事件处理程序

void input_TextInputStart(object sender, TextCompositionEventArgs e)
        {
            if(input.value.lenght == 2)
              {
                 input.value += '-';
              }
            if(input.value.lenght == 5)
              {
                 input.value += '-';
              }
             if(input.value.lenght == 9)
              {
                 input.value += '-';
              }

        }

3 个答案:

答案 0 :(得分:1)

输入提示不允许像文本框这样的属性,即选择,设置光标位置等所以我们需要创建自定义控件以屏蔽电话号码 这是一个告诉自定义控件的链接。 [链接](http://developer.nokia.com/Community/Wiki/How_to_use_Pop-Ups_in_Windows_Phone

答案 1 :(得分:0)

你需要这个:

TextBox.SelectionStart(int start,int end);

如果您这样做:

void input_TextInputStart(object sender, TextCompositionEventArgs e)
    {
        if(input.value.lenght == 2)
          {
             input.value += '-';.
             input.SelectionStart(input.Length-1,input.Length-1);
          }
        if(input.value.lenght == 5)
          {
             input.value += '-';
             input.SelectionStart(input.Length-1,input.Length-1);
          }
         if(input.value.lenght == 9)
          {
             input.value += '-';
             input.SelectionStart(input.Length-1,input.Length-1);
          }

    }

也许语法不正确,但方法就是你需要的

答案 2 :(得分:0)

或者您可以从InputPrompt类派生并创建公共TextBox属性,如:

public class MyInputPrompt : InputPrompt
{
    public TextBox MyInputBox
    {
        get { return this.InputBox; }
        set
        {
            if (value != this.InputBox)
            {
                this.InputBox = value;
            }
        }
    }
}