vb.net 学习编程是出现了错误 望高手们可以进来看一看帮帮忙 先谢谢了

我想在groupBox中通过for循环加几条线
For lineNum = 0 To 10
Dim line As PowerPacks.LineShape = New PowerPacks.LineShape
line.Y1 = line.Y1 + (startLineY + 10) ‘已经画好了一条线,根据这条线画出其他的线来
line.Y1 = startLineX
line.Y2 = line.Y2 + (endLineY + 10)
line.Y2 = endLineX
GroupBox1.Controls.Add(line)
Next
但是到了GroupBox1.Controls.Add(line)的位置就出了
Microsoft.VisualBasic.PowerPacks.LineShape'的值无法转换为System.Windows.Forms.Control的异常
我找了好久解决方法都没有找到

希望各位高手能够搭手相助

        Dim sctr As New ShapeContainer
        For lineNum = 0 To 10
            Dim line As New PowerPacks.LineShape(sctr)
            line.Y1 = line.Y1 + (startLineY + 10)
            line.X1 = startLineX
            line.Y2 = line.Y2 + (endLineY + 10)
            line.X2 = endLineX
            GroupBox1.Controls.Add(sctr)
        Next

追问

你好 谢谢你的答复
也真的出来了一条线
但是只是输出了一条线
我尝试把Dim sctr As New ShapeContainer放在for循环的里面,为了每次循环都会new一个sctr
但是没有效果

追答

代码演示:在GroupBox1上连续划横线,横线的高度距离为20(h),超出GroupBox1的高度范围后循环退出,停止划线。

Dim sc As New ShapeContainer
Dim ps As LineShape, h As Integer = 20
For i As Integer = 1 To (GroupBox1.Height \ h)
    ps = New LineShape(sc)
    ps.Y1 = h * i : ps.X1 = 0
    ps.Y2 = ps.Y1 : ps.X2 = GroupBox1.ClientSize.Width - 8
Next
GroupBox1.Controls.Add(sc)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-29
楼下的只出现一条,是因为线的坐标位置均是相同的。
第2个回答  2013-09-28
没有问题了。
相似回答