拖拽&将PictureBox放入另一个

时间:2014-02-05 11:08:11

标签: vb.net visual-studio

您好我是Visual Basic的新手并且有一些问题。

我正在使用Visual Studio 2013(visual Basic)。

作为练习,我正在尝试创建一个绘画混音器程序。界面由一个由12种圆形颜色组成的色轮和一台混合机组成。 (轮子类似于下图,混合机器未显示)

colour wheel](![enter image description here

孩子将能够将2种颜色拖放到混合机器中以产生最终颜色,然后将其显示在滚轮上,使其能够生成更多颜色等等。

我以为我会将PictureBoxes用于油漆罐和搅拌机。这样我就可以将视觉图像附加到具有透明背景等的组件上,看起来还不错。

1)这些组件是否适用于此目的?

我制作了以下代码,可以在屏幕上拖动2个图片框。

    Dim point As New System.Drawing.Point
    Dim X, Y As Integer

    Private Sub Box2_MouseDown(sender As Object, e As MouseEventArgs) Handles P2.MouseDown
    X = Control.MousePosition.X - P2.Location.X
    Y = Control.MousePosition.Y - P2.Location.Y
End Sub

Private Sub Box2_MouseMove(sender As Object, e As MouseEventArgs) Handles P2.MouseMove
    If e.Button = Windows.Forms.MouseButtons.Left Then
        point = Control.MousePosition
        point.X = point.X - (X)
        point.Y = point.Y - (Y)
        P2.Location = point
    End If
End Sub

Private Sub Box1_MouseDown(sender As Object, e As MouseEventArgs) Handles P1.MouseDown
    X = Control.MousePosition.X - P1.Location.X
    Y = Control.MousePosition.Y - P1.Location.Y
End Sub

Private Sub Box1_MouseMove(sender As Object, e As MouseEventArgs) Handles P1.MouseMove
    If e.Button = Windows.Forms.MouseButtons.Left Then
        point = Control.MousePosition
        point.X = point.X - (X)
        point.Y = point.Y - (Y)
        P1.Location = point
    End If
End Sub

我需要将PictureBoxes安排在一个圆圈中,在游戏开始时只能看到红色,绿色和蓝色。

2)我如何做到这一点,如果屏幕改变,他们保持相对位置或我应该有一个固定的屏幕尺寸?

如果孩子将盒子拖到屏幕上的某个位置并释放鼠标按钮,那么盒子也需要固定到位置EG,这样就可以回到同一个位置。

3)我将如何编码?    我想我需要X& Y来确定这个位置。

如果孩子将锅放到搅拌机上并在机器上添加另一个颜色罐,那么产生的颜色罐将出现在滚轮上。

4)我将如何编码?    我想我也需要X& Y坐标检查它是否在PictureBox(颜色混合机器)上面,或者是否有像OnDragOver这样的事件来处理它。

我最后会在应用程序中添加声音,EG(演讲)'你混合红色和蓝色产生紫色'等......如果可能的话?

我对Java中的OOP有很好的理解,并试图尝试新的东西!

所有建议,欢迎和帮助欢迎让我开始朝着正确的方向开始并表示赞赏。

此致

Ĵ

0 个答案:

没有答案