2015-02-05 28 views
0

这里有类似的问题,但是,它们最终都把焦点放在文本框上,这正是我不想要的。显示选择WPF文本框中的文本,而没有注意到它

基本上,我正在做一个无模式替换对话框,我希望能够选择它后面的文本,而不必给我的文本框焦点。现在,我已经设置了IsInactiveSelectionHighlightEnabled,这使得它可以显示,但在显示第一个选择之前,我必须将注意力集中到该框。之后,我可以改变选择,它会显示,而不会集中注意力。

请注意,我想永远不会把焦点放到文本框的主要原因是因为当焦点丢失并重新获得时它会导致闪光。如果可以避免的话,它也会起作用。

这是我使用的是什么,这将导致闪存

TextContent.Select(start_idx, len); 
TextContent.Focus(); 
this.Focus(); 

感谢。

回答

0

我认为这个关键在于你提到的“在那之后,我可以改变选择,它会显示而不给予焦点”。

我创建了一个测试应用程序,重新创建闪烁的问题。在父窗体中的InitializeComponent()之后,我创建了一个虚拟选择,集中TextBox然后将焦点转移到其他位置。事情是这样的:

TextContent.Select(0, 0); 
TextContent.Focus(); 
Button1.Focus(); 

则当推出的无模式对话框和选择的文本框,将不必提供焦点文本框,从而避免第一选择闪烁的工作改变了。

+0

我试过了,它不起作用。它确实如果我做'TextContent.Select(0,1)',但'(0,0)'似乎不适合我。另外,如果我在对话框打开的情况下编辑,那么选择会丢失,如果我点击“查找”,那么我必须重新调整“TextContent”的焦点才能看到新的选择。 – David

+1

奇怪的是,(0,0)对我来说是诀窍,但不管你说什么,它都不会处理编辑。我会继续思考! –