【发布时间】:2018-02-08 02:12:15
【问题描述】:
我想用代码在我的表单上绘制文本框/标签,并用线将它们连接起来——基于我存储在数据表(“treedata”)中的数据。如果我使用以下代码一切正常:
For i = 0 To treedata.Rows.Count - 1
Dim tb As New TextBox
hor = treedata.Rows(i)(11)
vern = ver + 120 * treedata.Rows(i)(4)
tb.Text = "sometext"
tb.Location = New Point(hor, vern)
Form8.Controls.Add(tb)
posofmodif = treedata.Rows(i)(10)
vero = treedata.Rows(i)(6)
Dim myPen As New System.Drawing.Pen(System.Drawing.Color.Green)
Dim formGraphics As System.Drawing.Graphics
myPen.SetLineCap(LineCap.RoundAnchor, LineCap.ArrowAnchor, DashCap.Flat)
formGraphics = Form8.CreateGraphics()
formGraphics.DrawLine(myPen, Convert.ToSingle(posofmodif), Convert.ToSingle(vero), Convert.ToSingle(hor), Convert.ToSingle(vern))
myPen.Dispose()
formGraphics.Dispose()
Next
但是我想使用标签而不是 TextBoxes,因为在这种情况下使用较重的 TextBoxes 是没有意义的。但是当我简单地替换
Dim tb As New TextBox
通过
Dim tb As New Label
标签确实按预期出现在表单上,但连接它们的线条只出现片刻,然后变得不可见。
我最初认为问题可能是由于标签在线条上方或下方引起的,但即使我确保没有线条穿过任何标签,它也会发生。
有人知道我可以做些什么来避免这种情况吗?
【问题讨论】:
-
你在哪里画画?如果您还没有这样做,请尝试在 Form.Paint 事件中这样做。
标签: vb.net winforms system.drawing