2011-03-15 37 views
2

我想在运行时调整文本框的高度,当用户按下“Enter”键时。C#:如何防止在Enter上滚动文本框的内容?

调整大小的效果很好,但问题在于按下“Enter”使文本“向上”一行。

换句话说,如果我的文本框包含两行,只有第二个按下“Enter”键后才可见。

该文本框将被正确调整大小,并且该卡position位于新行,但是文本框的整个内容在文本框失去焦点之前将不可见。

任何人都知道为什么会发生这种情况?当我按Enter键时,有什么办法可以防止文本框自动滚动文本? (在隐藏第一行并在文本框中创建无法访问的行的过程中)。

感谢

回答

1

我假设你正在处理的文本框的KeyPress事件,以改变大小。确保您取消处理程序中的事件(e.Handled = true) - 这将防止Enter击键也被应用于文本框内的文本(Enter键将CRLF添加到文本框的Text属性的末尾,这是导致向上滚动)。

+0

我目前正在处理TextChanged事件。虽然我不想保留CRLF,因为我实际上想在文本中添加新行吗? – 2011-03-15 16:53:38

+1

您可能想要处理Enter键,然后通过代码将CRLF附加到Text属性。除了在处理窗口消息时弄脏外,我认为你没有其他选择。 – CodingGorilla 2011-03-15 16:56:17

+1

您还应该处理KeyPress事件,并在那里处理用户按下“Enter”键。 – MusiGenesis 2011-03-15 16:57:04

相关问题