每个人我都面临着一个问题。我在初始阶段。请忽略愚蠢的问题。 我使用“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 += '-';
}
}
答案 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;
}
}
}
}