在TexBox / TexEdit中编写时,如果文本大于控件的大小,则将其滚动到右侧。

如何获得当前的可见性偏移量或滚动长度?

为了说明我想要的:



黑框代表全文。红色框是TextEdit,其中包含文本的可见部分。棕色的垂直线是插入符号。我想知道的是以像素为单位的偏移量度。

最佳答案

我对此进行了最少的测试,并且似乎可以正常工作,尽管在某些情况下它可能会偏离1像素:

int offset = tb.GetPositionFromCharIndex(0).X;


我将其放在TextChanged事件处理程序中以进行测试。

让我知道它是否满足您的需求。

干杯

编辑:我通过执行以下操作来添加边框的宽度(默认为Fixed3D):

int offset = tb.GetPositionFromCharIndex(0).X + SystemInformation.Border3DSize.Width;


这似乎可以带来更好的结果。

关于c# - 如何知道TextEdit中的当前可见性偏移量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21192481/

10-15 23:46