PDA

View Full Version : سوال: برسی رویداد close یک فرم



seyed ehsan
سه شنبه 09 فروردین 1390, 13:39 عصر
من تصمیم دارم تا در زمان بستن یک فرم عمل ویژه ای را انجام دهم .
به همین خاطر کد مورد نظر خودم را در رویداد close فرم مورد نظرم نوشتم . به خوبی هم اجرا میشه و کار بر در زمان کلیک کردن روی دکمه close فرم مربوطه باعث اجرا شدن کد مورد نظر میشود . اما اگر کار بر برای بستن فرم از ALT+F4 استفاده کند این اتفاق روی نمیدهد . چه راهی برای این وجود دارد ؟

Rejnev
سه شنبه 09 فروردین 1390, 14:39 عصر
جایی از کار اشتباهه
دو رویداد form_closed و form_closing اگه مقدار داشته باشند، متد مربوطه رو اجرا میکنند. با این تفاوت که پارامتر e در form_closing دارای خصوصیت Cancel از نو بولین است که میشه با اون بستن فرم رو کنسل کرد
لطفا کدتون رو بذارید.

m.soleimani
سه شنبه 09 فروردین 1390, 15:05 عصر
من تصمیم دارم تا در زمان بستن یک فرم عمل ویژه ای را انجام دهم .
به همین خاطر کد مورد نظر خودم را در رویداد close فرم مورد نظرم نوشتم . به خوبی هم اجرا میشه و کار بر در زمان کلیک کردن روی دکمه close فرم مربوطه باعث اجرا شدن کد مورد نظر میشود . اما اگر کار بر برای بستن فرم از ALT+F4 استفاده کند این اتفاق روی نمیدهد . چه راهی برای این وجود دارد ؟




If e.Alt = True And e.KeyCode = Keys.F4 Then
e.Handled = True
End If

shadi khanum
سه شنبه 09 فروردین 1390, 15:44 عصر
من اینکار رو کردم و جواب هم داده، چه با دکمه close فرم ، فرم رو ببندم چه با Alt+F4 و چه از TaskBar، کدهایی که تو رویداد from_Closing نوشتم اجرا میشه.
کاری که تو closing فرم میخواین انجام بدین چیه؟

seyed ehsan
چهارشنبه 10 فروردین 1390, 19:27 عصر
If e.Alt = True And e.KeyCode = Keys.F4 Then
e.Handled = True
End If



من این کد را در کدام قسمت باید بنویسم ؟

seyed ehsan
چهارشنبه 10 فروردین 1390, 19:29 عصر
جایی از کار اشتباهه
دو رویداد form_closed و form_closing اگه مقدار داشته باشند، متد مربوطه رو اجرا میکنند. با این تفاوت که پارامتر e در form_closing دارای خصوصیت Cancel از نو بولین است که میشه با اون بستن فرم رو کنسل کرد
لطفا کدتون رو بذارید.
کدی که در رویداد close فرم نوشته ام چیز خاصی نیست و فقط نمایش یک پیغام است . یک msgbox ظاهر میشود و یک پیغام را میدهد . منظور شما خوب متوجه نشدم . اگر امکان دارد یک کثال برای من بزنید .

Rejnev
چهارشنبه 10 فروردین 1390, 19:59 عصر
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
MessageBox.Show("form closed");
//the form1 is disposed and u can't use it...
//you can do ur works here like save some settings or ...
}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("quit?","title",MessageBoxButtons.YesNo)!=DialogResult.Yes)
{
e.Cancel = true;
}
}

ircast
چهارشنبه 10 فروردین 1390, 20:34 عصر
من تصمیم دارم تا در زمان بستن یک فرم عمل ویژه ای را انجام دهم .
به همین خاطر کد مورد نظر خودم را در رویداد close فرم مورد نظرم نوشتم . به خوبی هم اجرا میشه و کار بر در زمان کلیک کردن روی دکمه close فرم مربوطه باعث اجرا شدن کد مورد نظر میشود . اما اگر کار بر برای بستن فرم از ALT+F4 استفاده کند این اتفاق روی نمیدهد . چه راهی برای این وجود دارد ؟

سلام
کدت رو در رویداد FormClosing بنویس هر جوری فرم بسته بشه کد اجرا میشه

Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
MessageBox.Show("پیام")
End Sub