2009-06-26 93 views
0

我试图让我自己控制.NET中使用VB和我有问题实现我想要做的事情。事实上,我正在制作一个从文本框类继承的控件,我试图给它带来的唯一修改是,如果控件明显已满,则用户无法再输入。所以:验证多行文本框是否可见完整

  • 滚动条永远不会出现。
  • 扩展的TextBox可能是多行或单行。
  • 扩展的TextBox可能具有不同的字体和字体大小。

现在,我正在使用的技术是graphics.measurestring来获取包含我的字符串的宽度和高度的sizeF,以将其与我的文本框控件的高度和宽度进行比较。所有这些都在KeyDown事件中(我不知道这是最好的解决方案)。我可以让它在宽度上正常工作,但我似乎无法在多行文本框中找到高度。如果有人曾经使用过这些东西,我需要一些关于如何完成的解释。谢谢。

回答

0

的问题是你的第三个要求:

The extended TextBox may have different fonts and font sizes. 

这意味着你将要搞清楚每一行有多高是其行中的字符具有最大字体大小,要知道, ,你还必须知道每行中的哪些字符。它变得更糟,因为(令人惊讶的)不同的字体在相同的点大小下可以有不同的高度。如果不是因为按比例间隔字体中的每个字符的宽度不同,这一切都可行。如果您打算支持上标和下标...