Member 14621280 Ответов: 2

Я хочу удалить свою запись? Ошибка в функции MessageBox


I have made deleting Msgbox...

1. it was deleted successfully
2. But when i give no again it was deleted 

Problem is: if i choose "NO" dont delete the record in datagridview as well as datasource and keep as it is


Что я уже пробовал:

<pre>If True Then

                If MessageBox.Show("Do You Want To Remove This Row", "Remove Row", MessageBoxButtons.YesNo, MessageBoxIcon.Stop) = DialogResult.Yes Then
                    DataGridView1.Rows.RemoveAt(DataGridView1.CurrentRow.Index)
                Else
                    MessageBox.Show("Row Not Removed", "Remove Row", MessageBoxButtons.OK, MessageBoxIcon.Information)
                    DataGridView1.Rows.Add(DataGridView1.CurrentRow.Index)
                End If
            End If

2 Ответов

Рейтинг:
2

OriginalGriff

Во-первых, эта строка:

If True Then
Это не имеет значения: код, который следует за ним, всегда будет выполняться.

Во-вторых, зачем вы добавляете строку, если она не должна быть удалена?
Else
    MessageBox.Show("Row Not Removed", "Remove Row", MessageBoxButtons.OK, MessageBoxIcon.Information)
    DataGridView1.Rows.Add(DataGridView1.CurrentRow.Index)
End If

В-третьих, вы действительно не должны удалять строки из DGV, но из источника данных, к которому он привязан.

Код, который вы показываете в противном случае, выглядит нормально - поэтому я бы начал с отладчика и попытался точно выяснить, что происходит - поставил точку останова в первой строке метода и сделал один шаг, чтобы точно увидеть, куда он идет и какие переменные содержит.


Member 14621280

Лучше высоко ценит обратную связь от тех,....оценил

Member 14621280

Я не могу понять, как сказать originalGriff

OriginalGriff

Вы знаете, как использовать отладчик, не так ли?

Рейтинг:
1

CHill60

Член 14621280 написал:
Лучше высоко ценит обратную связь от тех,....оценил
Честно говоря, я не могу придумать лучшего способа выразить то, что уже есть у @OriginalGriff, но я попробую

Однако, отвечая на вопрос Гриффа
Цитата:
Вы знаете, как использовать отладчик, не так ли?
на всякий случай вот ссылка на хорошую статью об использовании отладчика Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Вы должны изменить код в соответствии с тем, что предложил Грифф
'Remove this if statement! If True Then

If MessageBox.Show("Do You Want To Remove This Row", "Remove Row", MessageBoxButtons.YesNo, MessageBoxIcon.Stop) = DialogResult.Yes Then
    'Only do this if you are manually updating your datagridview
    DataGridView1.Rows.RemoveAt(DataGridView1.CurrentRow.Index)
    'otherwise update your data source here and rebind the datagridview
Else
    MessageBox.Show("Row Not Removed", "Remove Row", MessageBoxButtons.OK, MessageBoxIcon.Information)
'Remove this line DataGridView1.Rows.Add(DataGridView1.CurrentRow.Index)
End If
'Remove this End If
См. Решение 1 здесь, чтобы узнать, как выполнить повторную привязку как обновить datagridview в vb.net[^]


Member 14621280

Я тоже пробовал это сделать, но если я снова нажму "нет", это будет удаление....

Member 14621280

Если MsgBox("вы уверены, что удалите?", MsgBoxStyle.Критический + MsgBoxStyle.Да, "Предупреждение") = MsgBoxResult.Тогда Да
MsgBox("да нажал")

Еще
MsgBox("нет щелчка")
Конец, Если


Я уже пробовал это, но я не мог вспомнить, когда я нажимаю кнопку "Нет", она не удаляется