【问题标题】:C#: How to prevent a textbox' content from being scrolled up on Enter?C#:如何防止文本框的内容在 Enter 时向上滚动?
【发布时间】:2011-07-15 23:01:22
【问题描述】:

当用户按下“Enter”键时,我正在尝试在运行时调整文本框的高度。

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

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

文本框将正确调整大小,并且插入符号位于新行,但文本框的全部内容在文本框失去焦点之前将不可见。

有人知道为什么会这样吗?有什么方法可以防止文本框在我按 Enter 时自动向上滚动文本? (在隐藏第一行并在文本框中创建无法访问的行的过程中)。

谢谢

【问题讨论】:

    标签: c# textbox scroll hide enter


    【解决方案1】:

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

    【讨论】:

    • 我目前正在处理 TextChanged 事件。我不想保留 CRLF,因为我实际上想要在文本中换行吗?
    • 您可能想要处理 Enter 按键,然后通过代码将 CRLF 附加到 Text 属性。除了处理窗口消息之外,我认为您没有其他选择。
    • 您还应该处理 KeyPress 事件,并处理在那里按下Enter 键的用户。
    • 谢谢大家,我会尝试并发布我的结果。
    猜你喜欢
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-06
    相关资源
    最近更新 更多