急!控件有何问题?

wenfeng 2000-05-08 09:31:00
下面是我新做的一个用VB编的测试用的控件的原代码, 其编译、运行时都没有显示任何问题,但当我将其运行之后,在其缺省状态下,即IE浏览器条件下打印该图形时,却显示出如下错误,
run-time error '6'
overflow
UserControl.CurrentX = (UserControl.ScaleWidth - UserControl.TextWidth(该行代码在 paint事件中) 。如果你尚不明白我的问题,可以将如下的代码直接拷贝在一个新的控件容器中,即可尝试运行、打印等,然后可发现错误在何处?
请各位高手给予指导!



************************************************************************
Const m_def_Title = "test"
Dim m_Title As String

Dim plotdata() As Double
'Event Declarations:




'WARNING! DO NOT REMOVE OR MODIFY THE FOLLOWING COMMENTED LINES!
'MemberInfo=13,0,0,test
Public Property Get Title() As String
Title = m_Title
End Property

Public Property Let Title(ByVal New_Title As String)
m_Title = New_Title
PropertyChanged "Title"
End Property

'Initialize Properties for User Control
Private Sub UserControl_InitProperties()
m_Title = m_def_Title


End Sub

Private Sub UserControl_Paint()

Dim i As Integer
Dim j As Integer

UserControl.CurrentY = 200
UserControl.CurrentX = (UserControl.ScaleWidth - UserControl.TextWidth(m_Title)) / 2
'print Title
UserControl.Print m_Title
' darw a line
UserControl.Line -(ScaleWidth / 2, 1000)


End Sub

'Load property values from storage
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)

m_Title = PropBag.ReadProperty("Title", m_def_Title)
End Sub

Private Sub UserControl_Resize()
Dim i As Integer
Dim j As Integer

UserControl.CurrentY = 200
UserControl.CurrentX = (UserControl.ScaleWidth - UserControl.TextWidth(m_Title)) / 2
'print Title
UserControl.Print m_Title
' darw a line
UserControl.Line -(ScaleWidth / 2, 1000)
End Sub

'Write property values to storage
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)

Call PropBag.WriteProperty("Title", m_Title, m_def_Title)
End Sub
'
...全文
184 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Un1 2000-05-19
  • 打赏
  • 举报
回复
对于VB程序,所有事件处理都需要加上错误处理,预防潜在错误。因为MS的致命错误处理和Insp不同,一个是粗暴结束,一个是假装没有发生。你可以试一下把UserControl的ScaleMode 改为 vbPixels。把所有Integer换成Long
wenfeng 2000-05-11
  • 打赏
  • 举报
回复
在该控件中的益处问题出现在“usercontrol.textwidth(m_Title)", 如果你在该控件
中加于如下代码:
dim y as single
y=usercontrol.textwidth(m_title)
你就会发现与上述一样的错误, 不过我还是不知道如何解决该问题, 请各位高手帮助!
dongdong 2000-05-09
  • 打赏
  • 举报
回复
错误的提示是溢出,我简单分析了一下,可能是这个原因,当PAINT事件执行时,你的这句代码:UserControl.CurrentX = (UserControl.ScaleWidth - UserControl.TextWidth(m_Title)) / 2 ,又会触发一个PAINT事件,这样便可能陷入一个死循环,我曾经有过类似错误,不知是否,望查证。
wenfeng 2000-05-09
  • 打赏
  • 举报
回复
dongdong
请问为什么在编译及运行、图形的显示都没有出现益处错误,但在IE中打印该图形时却出现?
wenfeng 2000-05-09
  • 打赏
  • 举报
回复
dongdong

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧