Страница: 1 |
Страница: 1 |
Вопрос: Отловить и предотвратить закрытие формы
Добавлено: 24.03.08 20:16
Автор вопроса: Alex
Я делаю программу в VB.NET 2005 и столкнулся с проблемой. Каким событием формы отловить клик по кнопки с крестиком в верхнем правом углу, притом так, чтобы вывести сообщение "Вы хотите сохраниться перед выходом?" и если отвечают "Отмена", то форма НЕ закрывается.
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #1
Добавлено: 24.03.08 21:06
If MsgBox("Сохранить файл перед выходом?", vbYesNoCancel) = vbCancel Then Cancel = True
End Sub
yf ljnytn cfv gthtdtlb
Номер ответа: 2
Автор ответа:
Администратор
ICQ: 278109632
Вопросов: 42
Ответов: 3949
Web-сайт:
Профиль | | #2
Добавлено: 24.03.08 21:07
на дотнет сам переведешь
Номер ответа: 3
Автор ответа:
Alex
Вопросов: 3
Ответов: 11
Профиль | | #3
Добавлено: 27.03.08 19:03
Эх, если бы все было так просто... Спасибо, но в том то и проблема, что не нашел я в дотнете такого события с возможностью отмены...
Номер ответа: 4
Автор ответа:
fluke
ICQ: 318170731
Вопросов: 15
Ответов: 96
Профиль | | #4
Добавлено: 27.03.08 19:09
'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
MyBase.Dispose(disposing)
End Sub
Номер ответа: 5
Автор ответа:
Alex
Вопросов: 3
Ответов: 11
Профиль | | #5
Добавлено: 27.03.08 20:11
Спасибо, то что надо!
Номер ответа: 6
Автор ответа:
ника
Вопросов: 1
Ответов: 111
Профиль | | #6
Добавлено: 28.03.08 08:16
Dispose к событию закрытия формы никакого отношения не имеет. Для этого используют:
Номер ответа: 7
Автор ответа:
ника
Вопросов: 1
Ответов: 111
Профиль | | #7
Добавлено: 28.03.08 08:17
Form.Closing Event
пример из MSND
[Visual Basic]
Private Sub Form1_Closing(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
' Determine if text has changed in the textbox by comparing to original text.
If textBox1.Text <> strMyOriginalText Then
' Display a MsgBox asking the user to save changes or abort.
If MessageBox.Show("Do you want to save changes to your text?", "My Application", MessageBoxButtons.YesNo) = DialogResult.Yes Then
' Cancel the Closing event from closing the form.
e.Cancel = True
End If ' Call method to save file...
End If
End Sub 'Form1_Closing
End Class 'Form1
[C#]
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
// Determine if text has changed in the textbox by comparing to original text.
if (textBox1.Text != strMyOriginalText)
{
// Display a MsgBox asking the user to save changes or abort.
if(MessageBox.Show("Do you want to save changes to your text?", "My Application",
MessageBoxButtons.YesNo) ==  ialogResult.Yes)
{
// Cancel the Closing event from closing the form.
e.Cancel = true;
// Call method to save file...
}
}
}
Подробности тут:
http://msdn2.microsoft.com/en-us/library/system.windows.forms.form.closing(VS.71).aspx