Domanda

So interesting dilemma, I've managed to make a label completely invisible, to where I can use it for a click event on certain parts of a picture.

I then use that click event to call another picturebox into focus using picturebox3.visible = true..

The issue I'm having is when it's calling that picturebox visibility..the controls from the new picturebox (Invisible labels) seem to not function or be missing from the picture in picturebox2 completely.

I need to do this with about 30 different pictures in order to create a kind of "emulator" project for someone.

Any ideas on this? I can post code if needed. Picturebox + controls on picturebox = headache.

    Public Class InvisibleLabel
Inherits Label

Public Sub New()
    Me.SetStyle(ControlStyles.Opaque, True)
    Me.SetStyle(ControlStyles.OptimizedDoubleBuffer, False)
End Sub
Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
    Get
        Dim CC As CreateParams = MyBase.CreateParams
        CC.ExStyle = CC.ExStyle Or &H20
        Return CC
    End Get
End Property

End Class

This is the code for the invisible label, then I'm just using picturebox2.visible = true when certain parts of a picture are clicked.

È stato utile?

Soluzione

I made 3 textboxes

textbox1 for X 'just for you to see

textbox2 for Y 'just for you to see

and

CurPicture to compare current image

my picturebox is 300,300

Private Sub PictureBox1_MouseClick(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseClick

    Dim LocX As Integer = e.X
    Dim LocY As Integer = e.Y
    TextBox1.Text = e.X.ToString
    TextBox2.Text = e.Y.ToString

    If LocX > 200 Then ' click right side op the picture , change LocX With LocY to make it bottom
        If CurPicture.Text = "1" Then
            PictureBox1.Image = My.Resources.Pic2
            CurPicture.Text = "2"
        ElseIf CurPicture.Text = "2" Then
            PictureBox1.Image = My.Resources.Pic3
            CurPicture.Text = "3"
        ElseIf CurPicture.Text = "3" Then
            PictureBox1.Image = My.Resources.Pic4
            CurPicture.Text = "4"
        ElseIf CurPicture.Text = "4" Then
            PictureBox1.Image = My.Resources.Pic5
            CurPicture.Text = "5"
        ElseIf CurPicture.Text = "5" Then
            PictureBox1.Image = My.Resources.Pic1
            CurPicture.Text = "1"
        End If
    End If

End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    PictureBox1.Image = My.Resources.Pic1
    CurPicture.Text = "1"
End Sub

Hope this will help you get on the way :)

Altri suggerimenti

Use:

Private Sub PictureBox_MouseDown(sender As Object, e As MouseEventArgs) _
  Handles PictureBox.MouseDown

    'The code to change the picture goes here

End Sub
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top