禁用Windows Phone上的Space键

时间:2013-07-19 13:33:10

标签: c# windows-phone

我有一个文本框,不允许用户在其中写入空格。

到目前为止,我有这段代码:

private void SearchCriteria_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
    if (e.Key.ToString() == "Space")
    {
        DelLast = SearchCriteria.Text;
        NeedsToDelete = true;
    }
}

private void SearchCriteria_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
{
    if (NeedsToDelete == true)
    {
        SearchCriteria.Text = DelLast;
        NeedsToDelete = false;
    }
}

它可以工作,但光标位于文本前面。还有另一种方法吗?

2 个答案:

答案 0 :(得分:0)

试试这个:

    private void SearchCriteria_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
    {
        if (NeedsToDelete == true)
        {
            SearchCriteria.Text = DelLast;
            NeedsToDelete = false;
            SearchCriteria.Select(SearchCriteria.Text.Length, 0);
        }
    }

答案 1 :(得分:0)

SelectionStart保存在OnKeyDown事件中,然后在OnKeyUpEvent中再次设置

private void SearchCriteria_KeyDown(object sender, System.Windows.Input.KeyEventArgs e
{
    if (e.Key.ToString() == "Space")
    {
        DelLast = SearchCriteria.Text;
        NeedsToDelete = true;
        _selectionStart = SearchCriteria.SelectionStart;
    }
}
private void SearchCriteria_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
{
    if (NeedsToDelete == true)
    {
        SearchCriteria.Text = DelLast;
        SearchCriteria.SelectionStart = _selectionStart;
        NeedsToDelete = false;
    }
}