This is driving me crazy. I have a listview that has LabelEdit set to true.
In the AfterLabelEdit event, I do my validation on the label text. If the
label isn't valid, it sets e.canceledit = true and calls the BeginEdit event.
I have included below the entire event handler code again as shown at the
end of this post.
Assume for this scenario that the label edited to an invalid value
After editing the value, if the user tabs away from the label, the code
executes as expected showing the messagebox and retruning to the label in
edit mode.
If the user edits the label and clicks away from the label, the validation
executes and presents the messagebox but after dismissing the messagebox, the
label will not automatically go back into edit mode (although it does have a
focus rectangle).
I have walked through the code and the sequence of events are the same
reguardless of how the users moves away from the label being edited. The
mouse click away from the label seems to be the culprit but for the life of
me I can't find a way around it.
Anyone have any insight into this?
Thanks
Private Sub ListView1_AfterLabelEdit(ByVal sender As Object, _
ByVal e As System.Windows.Forms.LabelEditEventArgs) _
Handles ListView1.AfterLabelEdit
Dim oIssueResponse As clsIssueResponse
Dim sName As String
Dim sPrompt As String
Dim i16ID As Int16
'Is the lable edited?
If e.Label Is Nothing Then
'There is No edit on the label,
Exit Sub
Else
'There Is edit on the label,
' take the label
sName = e.Label
End If
i16ID = CType(ListView1.FocusedItem.Tag, Int16)
'Validation
For Each oIssueResponse In mcolIssueResponses
If oIssueResponse.Name = sName And oIssueResponse.ID <> i16ID Then
sPrompt = "Cannot rename Issue Response: " & _
"An Issue Response with the name you specified already
exists. " & _
"Please specify a new name."
MsgBox(sPrompt, MsgBoxStyle.Exclamation, _
"Error renaming Issue Response")
e.CancelEdit() = True
ListView1.FocusedItem.BeginEdit()
Exit Sub
End If
Next oIssueResponse
Call UpdateIssueResponse(i16ID, sName)
End Sub