我正在开发一个C#中的Windows窗体应用程序,它在窗体上有一个多行TextBox控件。在左侧有垂直滚动条的文本框
由于特定(不相关)的原因,该TextBox需要在TextBox控件的左侧侧有一个垂直滚动条。我一直在寻找解决方案,但我找不到任何...所以我的问题是:
1)有没有办法让一个TextBox控件的自动垂直滚动条(或一个用户控件派生从TextBox或TextBoxBase)出现在左侧而不是右侧?这是首选的方法,因为所有的结果都由控件处理。由于对这样一个TextBox的RightToLeft属性进行切换实际上会将滚动条移动到左侧,所以我觉得这里必须有一个黑客入侵。
或
2)有,我可以用我的IMessageFilter实施拦截时,文本框滚动,即使它没有滚动条消息?即用户可以使用箭头键滚动,文本框会上下移动行,但是当发生这种情况时,我找不到任何消息。
也许另一个想法是如何做到这一点?
修改添加:文本需要水平对齐右边!否则,我已经解决了它。
新编辑截至2014年3月11日:好的,在BenVlodgi的评论之后,我开始怀疑自己的理智。所以我创建了一个测试项目,现在我记得为什么设置RightToLeft
到Yes
没有工作。
下图显示了使用该设置的左侧的常规文本框。滚动条位于左侧,文本位于右侧,但文本显示不正确。句子结尾的句点移到句子前面。
第二个TextBox控件是在LarsTech的答案中建议的,它的功能正确,不会移动任何标点符号。
因此,我接受并奖励赏金LarsTech的答案。
从内存中,如果你设置'LeftToRight'为是,和'textAlign设置= HorizontalAlign.Right'的,发生了什么文字? – dash
是的,我试过了,但是文本从右向左流动(向后),这不是我想要的。 –
参见http://stackoverflow.com/questions/8003530/is-it-possible-to-define-a-left-handed-combobox-ie-scrollbar-on-the-left-in-a –