vb.net e.Graphics.MeasureString()需要帮助

时间:2016-03-14 01:56:46

标签: vb.net string events size

所以我准备调用一个使用RichTextBox绘制e.Graphics.DrawString()内容的函数,该部分工作正常。但是,如果超过一定长度,我不希望绘制字符串。我将字符串存储在Master_Longest_String

我想到的一种方法是使用e.Graphics.MeasureString()。你传递字符串和它所在的字体,它给我的长度。然后我将长度与其他一些变量进行比较,并确定是否要绘制它。

我的问题是,我不知道如何调用MeasureStr函数?

我做到了:

Private Sub Results()
  Msgbox(MeasureStr())
End Sub

Private Function MeasureStr(ByVal e As PaintEventArgs) As SizeF
    Dim stringSize As New SizeF
    stringSize = e.Graphics.MeasureString(Master_Longest_String, Print_Font).width
    Return stringsize
End Function

但是,当我的子调用MeasureStr()时,它需要一个参数(e),但我不确定要传递给它的是什么?

1 个答案:

答案 0 :(得分:0)

 Dim sI As SizeF 
 Using g As Graphics = Graphics.FromHwnd(IntPtr.Zero)
  sI = g.MeasureString("yourtexthere", yourfonthere)
 End Using

 Return sI

将它放在你的函数中并从方法中删除paint参数......现在你不必担心paint参数或任何控制来获得长度......