نقل قول: نمایش پیغام درحال اجرا
سلام مهندس جان
بهتره یه فرم لودینگ برای خودت درست کنی و با معقوله threading این عملیات رو انجام بدی.
نقل قول: نمایش پیغام درحال اجرا
من مشکلی از ساختن همچین فرم لودینگی ندارم من فقط مشکلم اینه ک چطوره این فرم لودینگ که دارم میسازم رو توی اون بازه ی زمانی ک برنامه هیچی نمایش نمیده و گزارش رو آماده میکنه، نشون بدم؟
یعنی میخوام این فرم لودینگی که میگی رو فقط توی اون چند ثانیه نشون بده و وقتی گزارش آماده شد این صفحه لودینگ هم زودی بره؟
نقل قول: نمایش پیغام درحال اجرا
سلام
به فرمایش آقا ابراهیم عزیز دقت نکردی !
یه فرم انتظار با نخ ایجاد میکنی ، و توی رویداد باتون مربوط به گزارش میزاری ... قبل اجرای دستورات مربوط به لود گزارش فرم انتظار نمایش داده میده و پس از لود شدن پنجره گزارش فرم انتظار بسته میشه !
مثل این :
https://barnamenevis.org/attachment.p...1&d=1434805148
اینجا وقتی داره از دیتابیس بکاپ میگیره این فرم رو نشون میده و وقتی بکاپ گرفته ... بلافاصله فرم انتظار بسته میشه !
نقل قول: نمایش پیغام درحال اجرا
با سلام
دوست عزیز
من قبلا به این مشکل بر خوردم:
private void frmShowReport_Load(object Sender, EventArgs e)
{
frmLoading frm = new frmLoading()
frm.Show();
this.Enabled = false;
// اینجا کد تولید گزارش را قرار بده
frm.Close();
this.Enable = true;
}
این یک کد هست که کلا می گه که قبل از انجام کاری که زمان بر هست فرم لودینگ را نمایش بده و اون فرمی که داره عملیات را انجام می ده را غیر فعال کن.
بعد کد علمیات اجرا می شه اما فرم لودینگ در صفحه است.
در زمانی که عملیات تمام می شود فرم لودینگ را ببند.
و
فرم اصلی را فعال کن.
اگر ما فرم لودینگ را ShowDialog می کردیم دیگر ادامه کد تا بستن فرم ادامه پیدا نمی کرد. به خاطر همین مجبوریم فرم اصلی که داره عملیات را انجام می دهد غیر فعال کنیم.
این روش برای زمانی هست که کار Thread سخت هست یا امکانپذیر نیست.
امیدوارم منظورم را متوجه شده باشید.
با تشکر
نقل قول: نمایش پیغام درحال اجرا
سلام مهندس جان.
شما تو سایت یه سرچی بزنین تو همین انجمن میبینید تو معقوله ترید ها خیلی چیزها کفته شده. اینجور که من متوجه شدم شدم کار ترید رو خوب درک نکردی اصلا قصد توهین ندارم بد برداشت نکنید.
کار ترید همنه که در یک آن چند عمل رو انجام بدی البته در یک آن رو نشون میده ولی به صورت داره رو پروسس های خودش جابجا میشه و همه رو اجرا میکنه چون شما در برنامه دارید از 1 ترید اصلی برنامه استفاده میکنید نمیشه فهمید به چه صورت میشه این کار رو کرد البته behzadkhan یه قطعه کد برای شما گذاشتن که به درستی کار میکنه ولی عاقلانه نیست به این صورت کار کرد. البته این هم بگم wating کامپوننت devexpress رو به همین روش که behzadkhan گفتند استفاده میکنند که خوب هم جواب میده.
نقل قول: نمایش پیغام درحال اجرا
نقل قول:
نوشته شده توسط
ebrahim.rayatparvar
سلام مهندس جان.
شما تو سایت یه سرچی بزنین تو همین انجمن میبینید تو معقوله ترید ها خیلی چیزها کفته شده. اینجور که من متوجه شدم شدم کار ترید رو خوب درک نکردی اصلا قصد توهین ندارم بد برداشت نکنید.
کار ترید همنه که در یک آن چند عمل رو انجام بدی البته در یک آن رو نشون میده ولی به صورت داره رو پروسس های خودش جابجا میشه و همه رو اجرا میکنه چون شما در برنامه دارید از 1 ترید اصلی برنامه استفاده میکنید نمیشه فهمید به چه صورت میشه این کار رو کرد البته
behzadkhan یه قطعه کد برای شما گذاشتن که به درستی کار میکنه ولی عاقلانه نیست به این صورت کار کرد. البته این هم بگم wating کامپوننت devexpress رو به همین روش که
behzadkhan گفتند استفاده میکنند که خوب هم جواب میده.
با سلام
دوست عزیز
احتمالا من منظورم را بد توضیح دادم.
من فقط می خواستم روشی را که از thread استفاده نمی کند توضیح بدهم.
در کل مواقعی وجود دارد که فقط می توان از threadها برای حل مسائل استفاده کرد.
پس خیالتون راحت باشه که ما مخلص threadهم هستیم.
================================================== ===========
راستی من برای حل همین مشکلی یک جا از thread استفاده کردم اما با وجود اینکه از ShowDialog استفاده کرده بودم فرم زیرینم غیر فعال نشد و مجبور شدم که Enable فرم زیرین را false کنم.
البته علتش هم مشخص هست چون من درون thread فرم را ShowDialog کردم.
آیا شما توانسته اید این مشکل را به غیر false کردن Enable فرم زیرین برطرف کنید؟
با تشکر