با سلام
دوست عزیز
من قبلا به این مشکل بر خوردم:
private void frmShowReport_Load(object Sender, EventArgs e)
{
frmLoading frm = new frmLoading()
frm.Show();
this.Enabled = false;
// اینجا کد تولید گزارش را قرار بده
frm.Close();
this.Enable = true;
}
این یک کد هست که کلا می گه که قبل از انجام کاری که زمان بر هست فرم لودینگ را نمایش بده و اون فرمی که داره عملیات را انجام می ده را غیر فعال کن.
بعد کد علمیات اجرا می شه اما فرم لودینگ در صفحه است.
در زمانی که عملیات تمام می شود فرم لودینگ را ببند.
و
فرم اصلی را فعال کن.
اگر ما فرم لودینگ را ShowDialog می کردیم دیگر ادامه کد تا بستن فرم ادامه پیدا نمی کرد. به خاطر همین مجبوریم فرم اصلی که داره عملیات را انجام می دهد غیر فعال کنیم.
این روش برای زمانی هست که کار Thread سخت هست یا امکانپذیر نیست.
امیدوارم منظورم را متوجه شده باشید.
با تشکر