Silverlight TextBox,移动插入符号位置

标签 silverlight textbox behavior caret

我正在尝试为屏幕键盘创建一个 TextBox 行为,它可以更新文本框中的文本,但我无法让它聚焦文本框并将插入符号移动到文本的末尾更新。

我尝试在两个订单中使用 TextBox.Focus() 和 TextBox.Select() 都没有成功。

感谢您的宝贵时间

最佳答案

从输入事件处理程序中更改焦点(即鼠标单击虚拟键)将失败,因为鼠标向上事件(或键向上)会将焦点返回到原始元素。为了使其工作,您必须使用 Dispatcher 对象将焦点命令分派(dispatch)到稍后的时间。

例子:

Dispatcher.Invoke(new Action(() =>
{
    textBox1.Focus();
    textBox1.SelectionStart = textBox1.Text.Length;
    // or textBox1.Select(textBox1.Text.Length,0);
}), System.Windows.Threading.DispatcherPriority.Background);

关于Silverlight TextBox,移动插入符号位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1998705/

相关文章:

c# - TextBox.Lines 属性,签名是可读写的,但我得到只读且没有有用的错误

excel - 如何在选择中的每个单元格周围添加文本框/形状?

visual-studio - Silverlight打印中 "Dialogs must be user-initiated"安全异常的另一个技巧

silverlight - WP7 ScrollViewer - 将查看器留在滚动到的位置

c++ - 如何在 SendMessage 中使用 EM_SETSCROLLPOS 滚动到文本框的底部?

r - 绘制也将包含行为的事件预算图

javascript - javascript代码在浏览器上可见

cakephp - 树行为 : how to quickly reorder existing data by a certain field?

silverlight - 如何将实体集合传递给 .NET RIA 数据服务?

c# - 如何使用 MediaElement 播放本地 mp3 文件