2012-09-13 164 views

回答

2

设置

textBox1.IsInactiveSelectionHighlightEnabled = true; 

(显然,这是新的外汇4.5)

+0

谢谢你的建议,问题是我正在为.Net Framework 4开发。 – IneedHelp

+0

好吧,如果它直接受到新属性的支持,那么在早期版本中可能不是一种简单的方法。 –

+0

是的,这是有道理的。如果在早期版本中没有这样做的标准方式,那么这会使您的答案有效。谢谢。 – IneedHelp

0

你可以对焦点和离开焦点事件处理程序都用如下代码: -

textbox.SelectionStart = 0; 
textbox.SelectionLength = textbox.Text.Length; 
+0

感谢您的回答,但是当焦点丢失时,选择高亮仍然隐藏。 – IneedHelp

+0

这只会改变框中的选择,不会影响可见性。 –

1

您可以从TextBox类扩展,并使用SelectionChanged事件。

大多数情况下,更改控件的默认行为是一个坏主意。用户可以将其体验为意外行为,这很糟糕。就你而言,如果你设法创建这样的文本框,用户可以同时在多个文本框中选择文本,因为选择不会隐藏。

告诉我,您希望选定的文本保持突出显示的原因是什么?因为也许有另一种方式。

编辑:.NET 4.5支持这种功能:IsInactiveSelectionHighlightEnabled

+0

谢谢你的回答。使用临时图像叠加不是一种选择。在多个文本框中选择文本不是问题,因为我只在项目上下文中使用一个文本框。我想让文本突出显示的原因是因为我希望用户知道当文本框失去焦点时文本的哪一部分被选中。 +1虽然为您编辑,因为它是什么Henk也建议作为解决方案(在网络4.5)。 – IneedHelp

+1

我想知道如果用户试图复制(CTRL + C)选定的文本,而焦点在其他地方会发生什么。 ;) –

+0

@RuudLenders没有什么..因为焦点在别的地方...... – claudekennilol