I have created a form designer type application (with a lot of you peoples
helpJ). It has label controls that are draggable at runtime. The user is
also allowed to change some properties such as forecolor, backcolor and
font. The labels also are rotatable and the text can also be flipped 180
degrees (the flipped text part is still being worked on). I have one context
menu for all 30 labels that allows for the property changes to the labels.
As of now, the user can't edit any properties unless the label is first
selected. This is accomplished by holding down the ctrl key and left
clicking on the desired label or labels. This changes the border from none
to fixed single so the user can tell the label is selected. The properties
changes are the only applied to labels whose border style is fixed single
(kind of like a trigger). It also enables the menu items for the
above-mentioned properties in the context menu. The changes performed in the
context menu are then applied to all of the selected labels. What I'm
looking to be able to do is also just right click on any label and set its
individual properties. I am trying to use the distinction between the right
click and my above-mentioned ctrl left click. I'm getting lost in all of my
code with all these mouse events, mouse hover, mouse click, mouse down,
mouse move and mouse up events going on not to mention the toggling of all
the menu items enabled property. Mouse events are very difficult to debug J.
One of the other issues is the repainting of the labels which I have another
recent post about here on the board. I am sure there is a simpler way than
how I'm doing it. I posted my code below and am open to any suggestions on
how to make things simpler and work.
Private Sub lblP1JoyUp_MouseHover(ByVal sender As Object, ByVal e As
System.EventArgs) Handles lblP1JoyUp.MouseHover
lblP1JoyUp.Cursor = Cursors.SizeAll
End Sub
Private Sub lblP1JoyUp_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles lblP1JoyUp.Click
If bMouseMove = False Then
If bCtrlKey = True Then
If lblP1JoyUp.BorderStyle = BorderStyle.None Then
lblP1JoyUp.BorderStyle = BorderStyle.FixedSingle
AddLabel(frm1.Controls)
bLabelSelected = True
ElseIf lblP1JoyUp.BorderStyle = BorderStyle.FixedSingle Then
lblP1JoyUp.BorderStyle = BorderStyle.None
bLabelSelected = False
End If
End If
End If
Me.Refresh()
End Sub
Private Sub lblP1JoyUp_MouseDown(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles lblP1JoyUp.MouseDown
If e.Button = MouseButtons.Left Then
myMousedown = lblP1JoyUp.Name
bMouseMove = False
lblP1JoyUp.BringToFront()
mouseX = Cursor.Position.X - lblP1JoyUp.Location.X
mouseY = Cursor.Position.Y - lblP1JoyUp.Location.Y
lblP1JoyUp.Cursor = Cursors.Hand
ElseIf e.Button = MouseButtons.Right Then
No Code Here Yet!
End If
End Sub
Private Sub lblP1JoyUp_MouseMove(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles lblP1JoyUp.MouseMove
Dim lblP1JoyUp As Label = DirectCast(sender, Label)
Static LastCursor As Point
Dim NowCursor As Point = New Point(Cursor.Position.X, Cursor.Position.Y)
If Point.op_Inequality(NowCursor, LastCursor) Then
If myMousedown = lblP1JoyUp.Name Then
If lblP1JoyUp.BackColor.Equals(Color.Transparent) Then
clrBGColor = lblP1JoyUp.BackColor
bTransCk = True
lblP1JoyUp.BackColor = clrLabelMove
End If
lblP1JoyUp.Location = New System.Drawing.Point(Cursor.Position.X -
mouseX, Cursor.Position.Y - mouseY)
bMouseMove = True
bSavedLayoutTrigger = False
End If
LastCursor = Cursor.Position
End If
End Sub
Private Sub lblP1JoyUp_MouseUp(ByVal sender As System.Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles lblP1JoyUp.MouseUp
Dim lblP1JoyUp As Label = DirectCast(sender, Label)
If bTransCk = True Then
bTransCk = False
lblP1JoyUp.BackColor = clrBGColor
End If
myMousedown = ""
lblP1JoyUp.Cursor = Cursors.Default
End Sub
So what do you think,
John 3 1940
I have found a way do accomplish what I'm after, I think. Like I said, I
have 30 labels all sharing one context menu. As an example the is a menu
item in the context menu to change label.backcolor. When this menu item is
click it goes to a public sub which has code for ALL 30 labels. How can I
tell from which label the context menu was launched? This should be pretty
simple.
John
"jcrouse" <me> wrote in message
news:uH**************@TK2MSFTNGP09.phx.gbl... I have created a form designer type application (with a lot of you peoples helpJ). It has label controls that are draggable at runtime. The user is also allowed to change some properties such as forecolor, backcolor and font. The labels also are rotatable and the text can also be flipped 180 degrees (the flipped text part is still being worked on). I have one
context menu for all 30 labels that allows for the property changes to the labels. As of now, the user can't edit any properties unless the label is first selected. This is accomplished by holding down the ctrl key and left clicking on the desired label or labels. This changes the border from none to fixed single so the user can tell the label is selected. The properties changes are the only applied to labels whose border style is fixed single (kind of like a trigger). It also enables the menu items for the above-mentioned properties in the context menu. The changes performed in
the context menu are then applied to all of the selected labels. What I'm looking to be able to do is also just right click on any label and set its individual properties. I am trying to use the distinction between the
right click and my above-mentioned ctrl left click. I'm getting lost in all of
my code with all these mouse events, mouse hover, mouse click, mouse down, mouse move and mouse up events going on not to mention the toggling of all the menu items enabled property. Mouse events are very difficult to debug
J. One of the other issues is the repainting of the labels which I have
another recent post about here on the board. I am sure there is a simpler way than how I'm doing it. I posted my code below and am open to any suggestions on how to make things simpler and work. Private Sub lblP1JoyUp_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles lblP1JoyUp.MouseHover
lblP1JoyUp.Cursor = Cursors.SizeAll
End Sub Private Sub lblP1JoyUp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lblP1JoyUp.Click
If bMouseMove = False Then
If bCtrlKey = True Then
If lblP1JoyUp.BorderStyle = BorderStyle.None Then
lblP1JoyUp.BorderStyle = BorderStyle.FixedSingle
AddLabel(frm1.Controls)
bLabelSelected = True
ElseIf lblP1JoyUp.BorderStyle = BorderStyle.FixedSingle Then
lblP1JoyUp.BorderStyle = BorderStyle.None
bLabelSelected = False
End If
End If
End If
Me.Refresh()
End Sub Private Sub lblP1JoyUp_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lblP1JoyUp.MouseDown
If e.Button = MouseButtons.Left Then
myMousedown = lblP1JoyUp.Name
bMouseMove = False
lblP1JoyUp.BringToFront()
mouseX = Cursor.Position.X - lblP1JoyUp.Location.X
mouseY = Cursor.Position.Y - lblP1JoyUp.Location.Y
lblP1JoyUp.Cursor = Cursors.Hand
ElseIf e.Button = MouseButtons.Right Then
No Code Here Yet!
End If
End Sub Private Sub lblP1JoyUp_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lblP1JoyUp.MouseMove
Dim lblP1JoyUp As Label = DirectCast(sender, Label)
Static LastCursor As Point
Dim NowCursor As Point = New Point(Cursor.Position.X, Cursor.Position.Y)
If Point.op_Inequality(NowCursor, LastCursor) Then
If myMousedown = lblP1JoyUp.Name Then
If lblP1JoyUp.BackColor.Equals(Color.Transparent) Then
clrBGColor = lblP1JoyUp.BackColor
bTransCk = True
lblP1JoyUp.BackColor = clrLabelMove
End If
lblP1JoyUp.Location = New
System.Drawing.Point(Cursor.Position.X - mouseX, Cursor.Position.Y - mouseY)
bMouseMove = True
bSavedLayoutTrigger = False
End If
LastCursor = Cursor.Position
End If
End Sub Private Sub lblP1JoyUp_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lblP1JoyUp.MouseUp
Dim lblP1JoyUp As Label = DirectCast(sender, Label)
If bTransCk = True Then
bTransCk = False
lblP1JoyUp.BackColor = clrBGColor
End If
myMousedown = ""
lblP1JoyUp.Cursor = Cursors.Default
End Sub So what do you think,
John
John,
The sender parameter of the Click event is the Label that was clicked.
For example you could have a single Click event handler that handles 3
labels: lblP1JoyUp, lblP2JoyUp, and lblP3JoyUp something like: Private Sub label_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lblP1JoyUp.Click, lblP2JoyUp.Click,
lblP3JoyUp.Click
Dim label As Label = DirectCast(sender, Label)
' label now references the Label control that was clicked!
Within Label_Click, you can use the sender parameter to identify which label
was clicked.
Hope this helps
Jay
"jcrouse" <me> wrote in message
news:%2****************@TK2MSFTNGP09.phx.gbl... I have found a way do accomplish what I'm after, I think. Like I said, I have 30 labels all sharing one context menu. As an example the is a menu item in the context menu to change label.backcolor. When this menu item is click it goes to a public sub which has code for ALL 30 labels. How can I tell from which label the context menu was launched? This should be pretty simple.
John
"jcrouse" <me> wrote in message news:uH**************@TK2MSFTNGP09.phx.gbl... I have created a form designer type application (with a lot of you
peoples helpJ). It has label controls that are draggable at runtime. The user is also allowed to change some properties such as forecolor, backcolor and font. The labels also are rotatable and the text can also be flipped 180 degrees (the flipped text part is still being worked on). I have one context menu for all 30 labels that allows for the property changes to the
labels. As of now, the user can't edit any properties unless the label is first selected. This is accomplished by holding down the ctrl key and left clicking on the desired label or labels. This changes the border from
none to fixed single so the user can tell the label is selected. The
properties changes are the only applied to labels whose border style is fixed
single (kind of like a trigger). It also enables the menu items for the above-mentioned properties in the context menu. The changes performed in the context menu are then applied to all of the selected labels. What I'm looking to be able to do is also just right click on any label and set
its individual properties. I am trying to use the distinction between the right click and my above-mentioned ctrl left click. I'm getting lost in all of my code with all these mouse events, mouse hover, mouse click, mouse down, mouse move and mouse up events going on not to mention the toggling of
all the menu items enabled property. Mouse events are very difficult to
debug J. One of the other issues is the repainting of the labels which I have another recent post about here on the board. I am sure there is a simpler way
than how I'm doing it. I posted my code below and am open to any suggestions
on how to make things simpler and work. Private Sub lblP1JoyUp_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles lblP1JoyUp.MouseHover
lblP1JoyUp.Cursor = Cursors.SizeAll
End Sub Private Sub lblP1JoyUp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lblP1JoyUp.Click
If bMouseMove = False Then
If bCtrlKey = True Then
If lblP1JoyUp.BorderStyle = BorderStyle.None Then
lblP1JoyUp.BorderStyle = BorderStyle.FixedSingle
AddLabel(frm1.Controls)
bLabelSelected = True
ElseIf lblP1JoyUp.BorderStyle = BorderStyle.FixedSingle Then
lblP1JoyUp.BorderStyle = BorderStyle.None
bLabelSelected = False
End If
End If
End If
Me.Refresh()
End Sub Private Sub lblP1JoyUp_MouseDown(ByVal sender As System.Object, ByVal e
As System.Windows.Forms.MouseEventArgs) Handles lblP1JoyUp.MouseDown
If e.Button = MouseButtons.Left Then
myMousedown = lblP1JoyUp.Name
bMouseMove = False
lblP1JoyUp.BringToFront()
mouseX = Cursor.Position.X - lblP1JoyUp.Location.X
mouseY = Cursor.Position.Y - lblP1JoyUp.Location.Y
lblP1JoyUp.Cursor = Cursors.Hand
ElseIf e.Button = MouseButtons.Right Then
No Code Here Yet!
End If
End Sub Private Sub lblP1JoyUp_MouseMove(ByVal sender As System.Object, ByVal e
As System.Windows.Forms.MouseEventArgs) Handles lblP1JoyUp.MouseMove
Dim lblP1JoyUp As Label = DirectCast(sender, Label)
Static LastCursor As Point
Dim NowCursor As Point = New Point(Cursor.Position.X, Cursor.Position.Y)
If Point.op_Inequality(NowCursor, LastCursor) Then
If myMousedown = lblP1JoyUp.Name Then
If lblP1JoyUp.BackColor.Equals(Color.Transparent) Then
clrBGColor = lblP1JoyUp.BackColor
bTransCk = True
lblP1JoyUp.BackColor = clrLabelMove
End If
lblP1JoyUp.Location = New System.Drawing.Point(Cursor.Position.X - mouseX, Cursor.Position.Y - mouseY)
bMouseMove = True
bSavedLayoutTrigger = False
End If
LastCursor = Cursor.Position
End If
End Sub Private Sub lblP1JoyUp_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lblP1JoyUp.MouseUp
Dim lblP1JoyUp As Label = DirectCast(sender, Label)
If bTransCk = True Then
bTransCk = False
lblP1JoyUp.BackColor = clrBGColor
End If
myMousedown = ""
lblP1JoyUp.Cursor = Cursors.Default
End Sub So what do you think,
John
Resolved!
"jcrouse" <me> wrote in message
news:uH**************@TK2MSFTNGP09.phx.gbl... I have created a form designer type application (with a lot of you peoples helpJ). It has label controls that are draggable at runtime. The user is also allowed to change some properties such as forecolor, backcolor and font. The labels also are rotatable and the text can also be flipped 180 degrees (the flipped text part is still being worked on). I have one
context menu for all 30 labels that allows for the property changes to the labels. As of now, the user can't edit any properties unless the label is first selected. This is accomplished by holding down the ctrl key and left clicking on the desired label or labels. This changes the border from none to fixed single so the user can tell the label is selected. The properties changes are the only applied to labels whose border style is fixed single (kind of like a trigger). It also enables the menu items for the above-mentioned properties in the context menu. The changes performed in
the context menu are then applied to all of the selected labels. What I'm looking to be able to do is also just right click on any label and set its individual properties. I am trying to use the distinction between the
right click and my above-mentioned ctrl left click. I'm getting lost in all of
my code with all these mouse events, mouse hover, mouse click, mouse down, mouse move and mouse up events going on not to mention the toggling of all the menu items enabled property. Mouse events are very difficult to debug
J. One of the other issues is the repainting of the labels which I have
another recent post about here on the board. I am sure there is a simpler way than how I'm doing it. I posted my code below and am open to any suggestions on how to make things simpler and work. Private Sub lblP1JoyUp_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles lblP1JoyUp.MouseHover
lblP1JoyUp.Cursor = Cursors.SizeAll
End Sub Private Sub lblP1JoyUp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lblP1JoyUp.Click
If bMouseMove = False Then
If bCtrlKey = True Then
If lblP1JoyUp.BorderStyle = BorderStyle.None Then
lblP1JoyUp.BorderStyle = BorderStyle.FixedSingle
AddLabel(frm1.Controls)
bLabelSelected = True
ElseIf lblP1JoyUp.BorderStyle = BorderStyle.FixedSingle Then
lblP1JoyUp.BorderStyle = BorderStyle.None
bLabelSelected = False
End If
End If
End If
Me.Refresh()
End Sub Private Sub lblP1JoyUp_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lblP1JoyUp.MouseDown
If e.Button = MouseButtons.Left Then
myMousedown = lblP1JoyUp.Name
bMouseMove = False
lblP1JoyUp.BringToFront()
mouseX = Cursor.Position.X - lblP1JoyUp.Location.X
mouseY = Cursor.Position.Y - lblP1JoyUp.Location.Y
lblP1JoyUp.Cursor = Cursors.Hand
ElseIf e.Button = MouseButtons.Right Then
No Code Here Yet!
End If
End Sub Private Sub lblP1JoyUp_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lblP1JoyUp.MouseMove
Dim lblP1JoyUp As Label = DirectCast(sender, Label)
Static LastCursor As Point
Dim NowCursor As Point = New Point(Cursor.Position.X, Cursor.Position.Y)
If Point.op_Inequality(NowCursor, LastCursor) Then
If myMousedown = lblP1JoyUp.Name Then
If lblP1JoyUp.BackColor.Equals(Color.Transparent) Then
clrBGColor = lblP1JoyUp.BackColor
bTransCk = True
lblP1JoyUp.BackColor = clrLabelMove
End If
lblP1JoyUp.Location = New
System.Drawing.Point(Cursor.Position.X - mouseX, Cursor.Position.Y - mouseY)
bMouseMove = True
bSavedLayoutTrigger = False
End If
LastCursor = Cursor.Position
End If
End Sub Private Sub lblP1JoyUp_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lblP1JoyUp.MouseUp
Dim lblP1JoyUp As Label = DirectCast(sender, Label)
If bTransCk = True Then
bTransCk = False
lblP1JoyUp.BackColor = clrBGColor
End If
myMousedown = ""
lblP1JoyUp.Cursor = Cursors.Default
End Sub So what do you think,
John
This discussion thread is closed Replies have been disabled for this discussion. Similar topics
5 posts
views
Thread by John Champaign |
last post: by
|
3 posts
views
Thread by red |
last post: by
|
8 posts
views
Thread by Steve Jorgensen |
last post: by
|
3 posts
views
Thread by Jason |
last post: by
|
13 posts
views
Thread by James Bond |
last post: by
|
18 posts
views
Thread by eliss.carmine |
last post: by
|
2 posts
views
Thread by =?Utf-8?B?c25naWxi?= |
last post: by
|
5 posts
views
Thread by moonie |
last post: by
|
2 posts
views
Thread by markszlazak |
last post: by
| | | | | | | | | | |