Silverlight以编程方式选择文本

时间:2009-03-16 23:04:06

标签: c# silverlight

我正在使用具有TextBox和Button的Silverlight控件。当我单击按钮(下面调用SelectText)时,我想选择文本框中的所有文本。

这是我的代码:

    private void SelectText()
    {
        TextBox tb = this.txtFirstName;
        tb.SelectionStart = 0;
        tb.SelectionLength = 3;
        // tb.Select(0, this.txtFirstName.Text.Trim().Length - 1);
        // tb.SelectAll();
        // tb.Text = String.Empty;
    }

评论的代码是我已经尝试过的,但两者都没有用。

有人对我做错了什么有建议吗?

4 个答案:

答案 0 :(得分:4)

您可能需要将焦点放在文本框中以查看实际选择的发生(在选择之前或之后,可能无关紧要,但您必须尝试):

private void SelectText()
    {
        TextBox tb = this.txtFirstName;
        tb.SelectionStart = 0;
        tb.SelectionLength = 3;
        // tb.Select(0, this.txtFirstName.Text.Trim().Length - 1);
        // tb.SelectAll();
        // tb.Text = String.Empty;
        tb.Focus();
    }

答案 1 :(得分:1)

SelectAll()有效 - 我已多次使用它。在这种方法发生后是否会操纵文本框?

答案 2 :(得分:1)

这可以解决整个用户控件的问题。

public partial class MainPage : UserControl
{
    public MainPage()
    {
        InitializeComponent();
    }
    protected override void OnGotFocus(RoutedEventArgs e)
    {
        TextBox tb = e.OriginalSource as TextBox;
        if (tb != null)
            tb.SelectAll();
        base.OnGotFocus(e);
    }
}

答案 3 :(得分:0)

焦点解决方案对我有用,但有时我会在SelectAll()期间得到这个ExecutionEngineException并且它完全是假的!即使是尝试......捕获也不会阻止它,并且没有关于错误的更多细节。