我将在Windows窗体上的标签中输入许多字符串(我不会使用这些字符串).字符串将类似于以下内容:
"快速的棕色狐狸在猎犬身上跑了过来"
我想在标签中显示字符串,但是将TextBox精确地覆盖在缺少字母的位置.
将有300多个字符串,我正在寻找最简单,最优雅的方法.
如何为每个字符串准确地重新定位文本框?
编辑: MaskTextBox将无法正常工作,因为我需要多行支持.
我正在尝试创建一个Control,它基本上允许我在彼此之下绘制不同的字符串.但是,字符串的宽度可能不会大于控件的宽度.为了解决这个问题,我想将RectangleF对象传递给Graphics.DrawString方法.这将包裹比传递的矩形宽度更宽的字符串.虽然这确实解决了如果它太大而无法看到整个字符串的问题,但还有另一个问题.如果我尝试这样的事情
Graphics g = e.Graphics; // Paint event
g.DrawString(someText, someFont, someBrush, new PointF(0, 0), someRectangleF);
g.DrawString(someMoreText, someFont, someBrush, new PointF(0, 12), someRectangleF);
Run Code Online (Sandbox Code Playgroud)
问题是如果someText被包装,第三行将在第一个文本上绘制文本,从而使得很难/不可能被阅读.
我正在寻找这个问题的解决方案,我发现了一些有趣的链接,但是包括使用for循环来测量每个角色的宽度等等.有没有更简单的方法呢?