2014-05-09 2 views
1

Так интересная дилемма, мне удалось сделать ярлык полностью невидимым, где я могу использовать его для события click на некоторых частях изображения.VB.NET PictureBox/Элементы управления

Затем я использую это событие щелчка, чтобы вызвать другой PictureBox в фокус с помощью picturebox3.visible = верно ..

вопрос, который я имею то, когда он звонит, что элементы управления PictureBox visibility..the от нового PictureBox (Невидимые ярлыки), кажется, не функционируют или отсутствуют на картинке в picturebox2 полностью.

Мне нужно сделать это примерно с 30 различными изображениями, чтобы создать своего рода проект «эмулятор» для кого-то.

Любые идеи по этому вопросу? При необходимости я могу отправить код. Picturebox + элементы управления на Picturebox = головная боль.

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

Это код для невидимой этикетки, то я только с помощью picturebox2.visible = верно, когда некоторые части картин щелкает.

+1

Избавиться ярлыков. Просто используйте событие PictureBox MouseDown, проверьте координаты и т. Д. Если у вас есть код, то да, разместите его. – LarsTech

+0

Обновлено. Код довольно упрощен, я просто не уверен, как обрабатывать события mousedown. – ShawnB

ответ

1

Я сделал 3 Textboxes

textBox1 для X 'только для вас, чтобы увидеть

TextBox2 для Y' только для вас, чтобы увидеть

и

CurPicture для сравнения текущего изображения

моего PictureBox является 300.300

Private Sub PictureBox1_MouseClick (отправитель As Object, е Как MouseEventArgs) Ручками 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 

Надеется, что это поможет вам получить на пути :)

1

Использование:

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

    'The code to change the picture goes here 

End Sub 
+0

Как бы установить это для определенной области? Это то, что меня достает, я знаю, что я вижу X, Y внизу справа, но как бы использовать это, чтобы настроить область щелчка на конкретные вещи? – ShawnB

+0

Отлично. Спасибо. – ShawnB

Смежные вопросы