PDA

View Full Version : سوال: خود به خود بسته شدن فرم



forodo
چهارشنبه 29 مرداد 1393, 11:30 صبح
سلام
من یه دکمه دارم برای پرینت که وقتی می زنم و کارم تموم می شه باید فرم باز بمونه ولی خود به خود بسته می شه.
همه this.close() هارو کامنتی کردم و هیچ dispose یا usingای ندارم که بخواد باعت بسته شدن فرمم بشه.
لطفاً بگید دیگه از چی می تونه باشه.
با تشکر

notepad
چهارشنبه 29 مرداد 1393, 11:35 صبح
سلام
از ()Application.Exit هم میتونه باشه

forodo
چهارشنبه 29 مرداد 1393, 11:39 صبح
سلام
از ()Application.Exit هم میتونه باشه
اگه این بود باید کل پروژه بسته می شد ولی فقط اون فرمم که باهاش کار می کنم بسته می شه و فرمهای دیگه بازه.

Pro9ramm3r
چهارشنبه 29 مرداد 1393, 11:45 صبح
سلام
من یه دکمه دارم برای پرینت که وقتی می زنم و کارم تموم می شه باید فرم باز بمونه ولی خود به خود بسته می شه.
همه this.close() هارو کامنتی کردم و هیچ dispose یا usingای ندارم که بخواد باعت بسته شدن فرمم بشه.
لطفاً بگید دیگه از چی می تونه باشه.
با تشکر

درود

سورستون رو بذارید...

forodo
چهارشنبه 29 مرداد 1393, 12:12 عصر
درود

سورستون رو بذارید...

آخه کجاش رو بذارم؟
از اون close نیست چون هرچی close هستش رو کامنتی کردم.
public void pprriinnttLandscape(Form f, PrintDocument dp, PrintDialog p, bool b)
{
foreach (Control ctrl in f.Controls)
{
if (ctrl.GetType().Name.ToString() == "Button")
{
ctrl.Visible = false;
}
}
f.FormBorderStyle = FormBorderStyle.None;
p.ShowDialog();
dp.DefaultPageSettings.Landscape = true;
dp.Print();
if (b)
{
f.Close();
}
else
{
foreach (Control ctrl in f.Controls)
{
if (ctrl.GetType().Name.ToString() == "Button")
{
ctrl.Visible = true;
}
}
f.FormBorderStyle = FormBorderStyle.FixedSingle;
}
}
public void pprriinnttLandscapeWithSize(Form f, PrintDocument pd, PrintPageEventArgs e, int ww, int hh)
{
Bitmap b = new Bitmap(f.Width, f.Height);
int newWidth = (int)pd.DefaultPageSettings.PrintableArea.Height;
int newHeight = (int)pd.DefaultPageSettings.PrintableArea.Width;
f.DrawToBitmap(b, new Rectangle(0, 0, f.Width, f.Height));
e.Graphics.DrawImage(b, new Rectangle(0, 0, newWidth, newHeight), new Rectangle(0, 0, ww, hh), GraphicsUnit.Pixel);
}

Pro9ramm3r
چهارشنبه 29 مرداد 1393, 12:25 عصر
آخه کجاش رو بذارم؟
از اون close نیست چون هرچی close هستش رو کامنتی کردم.
public void pprriinnttLandscape(Form f, PrintDocument dp, PrintDialog p, bool b)
{
foreach (Control ctrl in f.Controls)
{
if (ctrl.GetType().Name.ToString() == "Button")
{
ctrl.Visible = false;
}
}
f.FormBorderStyle = FormBorderStyle.None;
p.ShowDialog();
dp.DefaultPageSettings.Landscape = true;
dp.Print();
if (b)
{
f.Close();
}
else
{
foreach (Control ctrl in f.Controls)
{
if (ctrl.GetType().Name.ToString() == "Button")
{
ctrl.Visible = true;
}
}
f.FormBorderStyle = FormBorderStyle.FixedSingle;
}
}
public void pprriinnttLandscapeWithSize(Form f, PrintDocument pd, PrintPageEventArgs e, int ww, int hh)
{
Bitmap b = new Bitmap(f.Width, f.Height);
int newWidth = (int)pd.DefaultPageSettings.PrintableArea.Height;
int newHeight = (int)pd.DefaultPageSettings.PrintableArea.Width;
f.DrawToBitmap(b, new Rectangle(0, 0, f.Width, f.Height));
e.Graphics.DrawImage(b, new Rectangle(0, 0, newWidth, newHeight), new Rectangle(0, 0, ww, hh), GraphicsUnit.Pixel);
}


اگه اشتباه نکنم این خط:

if (b)
{
f.Close();
}

forodo
چهارشنبه 29 مرداد 1393, 12:31 عصر
اگه اشتباه نکنم این خط:

if (b)
{
f.Close();
}
گفتم این خط نیست چون کامنتیه.
همه closeها به صورت کامنته.
به این false پاس داده می شه ولی باز کامنتیش کردم.

alibilgats
چهارشنبه 29 مرداد 1393, 13:54 عصر
شما احتمالا خاصیت DialogResult اون button رو برابر با Cancel گذاشتی!
مقدار خاصیت CancelButton فرمت رو هم یه نگاه بنداز

MahmoodM30
چهارشنبه 29 مرداد 1393, 21:50 عصر
برای من قبلا اینجور مشکلی پیش اومده بود که وقتی از پروژه دیگه یه دکمه رو کپی میکردم میاوردم توی پروزه دیگه وقتی روش کلیک میکردم کار رو انجام میدادم فرم بسته میشد

وقتی دکمه جدید ایجاد کردم و کد ها رو داخلش نوشتم حل شد شما هم یبار این کار رو بکنید شاید درست شد

Ali.hitter
چهارشنبه 29 مرداد 1393, 22:22 عصر
سلام دوست عزیز از این کد استفاده کن :
Enviroment.Exit();

forodo
پنج شنبه 30 مرداد 1393, 12:40 عصر
شما احتمالا خاصیت DialogResult اون button رو برابر با Cancel گذاشتی!
مقدار خاصیت CancelButton فرمت رو هم یه نگاه بنداز
هیچ کدام از اینا نبود.

برای من قبلا اینجور مشکلی پیش اومده بود که وقتی از پروژه دیگه یه دکمه رو کپی میکردم میاوردم توی پروزه دیگه وقتی روش کلیک میکردم کار رو انجام میدادم فرم بسته میشد

وقتی دکمه جدید ایجاد کردم و کد ها رو داخلش نوشتم حل شد شما هم یبار این کار رو بکنید شاید درست شد
این راه رو انجام دادم درست شد ولی نفهمیدم از چی بود.

سلام دوست عزیز از این کد استفاده کن :
Enviroment.Exit();
نمی خوام چیزی رو ببندم

syntiberium
پنج شنبه 30 مرداد 1393, 14:11 عصر
بعضی وقت ها visual studio قاطی می کنه و کد رو کامپایل نمی کنه فقط فایل exe که از قبل وجود داره رو اجرا می کنه . فایل exe رو پاک کن شاید درست شد .

forodo
پنج شنبه 30 مرداد 1393, 17:44 عصر
بعضی وقت ها visual studio قاطی می کنه و کد رو کامپایل نمی کنه فقط فایل exe که از قبل وجود داره رو اجرا می کنه . فایل exe رو پاک کن شاید درست شد .
این کار رو قبل از ایجاد تاپیک انجام دادم درست نشد.
دکمه رو پاک کردم و دوباره دکمه جدید انداختم درست شد.