Не удается удалить элемент Listview

#vb.net #winforms

#vb.net #winforms

Вопрос:

У меня есть Listview и кнопка, подобная этой

введите описание изображения здесь

Ниже приведен код, который я использовал для удаления данных из Listview

 Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
    If lvNotesList.SelectedItems.Count > 0 Then
        Dim Result = MsgBox("Are sure you want to Delete the Selected Item ?", MessageBoxButtons.YesNo   vbQuestion)
        If Result = DialogResult.Yes Then
            Dim ID As String = lvNotesList.SelectedItems(0).SubItems(0).Text

            Try
                Dim sqlConnection As New SQLite.SQLiteConnection()
                Dim sqlCommand As New SQLiteCommand("", sqlConnection)
                Dim sqlPath As String = "Data Source=" amp; Application.StartupPath amp; "DatabaseSimpleDB.db3"
                Dim sqlQuery As String = "DELETE FROM Notes WHERE NoteID = " amp; ID
                sqlConnection.ConnectionString = sqlPath
                sqlConnection.Open()
                sqlCommand.CommandText = sqlQuery
                sqlCommand.ExecuteNonQuery()
                sqlConnection.Close()
                MsgBox("Operation Successfull", vbInformation)
            Catch ex As Exception
                MsgBox("Error: Operation Unsuccessfull." amp; Chr(13) amp; "Sumamry:" amp; ex.Message, vbExclamation)
            End Try

        Else
            Exit Sub
        End If
    Else
        MsgBox("Select an Item First", vbExclamation)
    End If
End Sub
  

По какой-то причине это выдает ошибку, подобную этой

введите описание изображения здесь

Как я могу это исправить?

Ответ №1:

MsgBox Приводит к тому, что ListView теряет фокус, что, в свою очередь, очищает выделение. Вам нужно будет установить для HideSelection свойства вашего ListView значение false .

Редактировать:

Попробуйте это

 If lvNotesList.SelectedItems.Count > 0 Then
        Dim ID As String = lvNotesList.SelectedItems(0).SubItems(0).Text
        Dim Result = MsgBox("Are sure you want to Delete the Selected Item ?", MessageBoxButtons.YesNo   vbQuestion)
        If Result = DialogResult.Yes Then
  

Комментарии:

1. Да, это работает идеально, когда я удаляю msgbox. Но тогда как я могу предупредить пользователя?

2. установите значение HideSelection равным false для вашего listview из конструктора.