PDA

View Full Version : سوال: مشکل این سورس نوشته شده چیه؟ (باز و بستن متفاوت برنامه)



sattar1
شنبه 11 شهریور 1391, 20:36 عصر
سلام به دوستان گرامی

دیروز تاپیکی زدم و در اون به دنبال "باز و بستن متفاوت برنامه" بود.
یکی از دوستان زحمت کشید و سورسی رو قرار داد، که دقیقا همون چیزی بود که من به دنبالش بودم.
برنامه به درستی کار میکنه اما یک مشکله کوچیک داره.
وقتی که فرم مربوطه رو (تو این برنامه فرم 2) از زبانه ی Properties به صورت زیر تنظیم میکنیم برنامه کار نمیکنه (اصلا بسته نمیشه)


WindowsState = Maximized


چجوری میشه این مشکل رو رفع کرد؟؟؟


لینک دانلود برنامه :

the king
شنبه 11 شهریور 1391, 22:27 عصر
سلام به دوستان گرامی

دیروز تاپیکی زدم و در اون به دنبال "باز و بستن متفاوت برنامه" بود.
یکی از دوستان زحمت کشید و سورسی رو قرار داد، که دقیقا همون چیزی بود که من به دنبالش بودم.
برنامه به درستی کار میکنه اما یک مشکله کوچیک داره.
وقتی که فرم مربوطه رو (تو این برنامه فرم 2) از زبانه ی Properties به صورت زیر تنظیم میکنیم برنامه کار نمیکنه (اصلا بسته نمیشه)


WindowsState = Maximized


چجوری میشه این مشکل رو رفع کرد؟؟؟



اینطوری :

92204

sattar1
شنبه 11 شهریور 1391, 23:42 عصر
اینطوری :

92204

دوست عزیز واقعا دستت درد نکنه --- بسیار ممنون از کمکت

اما 2 تا سوال دارم

1.
من در برنامه ام یک دکمه ی خروج دارم که کدش به صورته زیره:
// Exite
DialogResult Exitee;
Exitee = MessageBox.Show("آیا میخواهید از برنامه خارج شوید ؟ ", "توجه", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (Exitee == DialogResult.Yes)
Application.Exit();
if (Exitee == DialogResult.No)
return;
// Exite---End

تو این حالت برنامه اصلا بسته نمیشه
مگر اینکه به جای Application.Exit(); فرم رو ببندم ، یعنی بنویسم this.Close();
اما در این حالت برنامه بسته نشده بلکه فرم بسته شده و برنامه هنوز در حاله اجراست.
(البته دکمه ی بستنه خوده فرم مشکلی نداره)

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

private void btnOpen_Click(object sender, EventArgs e)
{
Form2 sample = new Form2();
OpenForm(sample, Effects.Grow, this);
}

اما تو حالتی که فقط یک فرم داریم چه میشه کرد؟؟؟؟

بازم ممنون از پاسختون

the king
یک شنبه 12 شهریور 1391, 00:33 صبح
دوست عزیز واقعا دستت درد نکنه --- بسیار ممنون از کمکت

اما 2 تا سوال دارم

1.
من در برنامه ام یک دکمه ی خروج دارم که کدش به صورته زیره:
// Exite
DialogResult Exitee;
Exitee = MessageBox.Show("آیا میخواهید از برنامه خارج شوید ؟ ", "توجه", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (Exitee == DialogResult.Yes)
Application.Exit();
if (Exitee == DialogResult.No)
return;
// Exite---End

تو این حالت برنامه اصلا بسته نمیشه
مگر اینکه به جای Application.Exit(); فرم رو ببندم ، یعنی بنویسم this.Close();
اما در این حالت برنامه بسته نشده بلکه فرم بسته شده و برنامه هنوز در حاله اجراست.
(البته دکمه ی بستنه خوده فرم مشکلی نداره)

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

private void btnOpen_Click(object sender, EventArgs e)
{
Form2 sample = new Form2();
OpenForm(sample, Effects.Grow, this);
}

اما تو حالتی که فقط یک فرم داریم چه میشه کرد؟؟؟؟

بازم ممنون از پاسختون


چه یک فرم دارید و چه چند فرم، تا زمانی که برنامه تون Thread اضافه ای در حال اجرا نداشته باشه و فقط Thread اصلی در حال اجرا باشه با
خاتمه اجرای Thread اصلی اجرای برنامه هم خاتمه پیدا می کنه :

Application.ExitThread();




public Form1()
{
InitializeComponent();
Load += new EventHandler(form_Load);
FormClosing += new FormClosingEventHandler(form_FormClosing);
}

BEHZADnr
یک شنبه 12 شهریور 1391, 02:51 صبح
سلام
برای خروج کامل از برنامه میتونید از کد زیر هم استفاده کنید
Environment.Exit(1);