PDA

View Full Version : سوال: نحوه استفاده از کنترل progressbar در فرم splash



va2012
جمعه 24 شهریور 1391, 20:57 عصر
سلام .

من یک فرم splash برای لود اطلاعات فرم اصلی درست کردم و داخل آن هم از یک progressbar استفاده کردم که به وسیله یک تایمر اون رو فعال کردم ولی progressbar اصلا کار نمیکنه. یعنی فرم splash به صورت ثابت نمایش داده میشه و بعد فرم اصلی لود میشه و progressbar حرکت نمیکنه. کسی راه حلی به نظرش میرسه؟

Hossenbor
جمعه 24 شهریور 1391, 21:09 عصر
سلام دوست عزیز شما یا تایمرت کار نمی کنه یا کد تایمرت اشتباهه یک نگاهی بنداز

ehsan7007
جمعه 24 شهریور 1391, 21:14 عصر
progressBar1.Increment(1);
if (progressBar1.Value == 100) timer1.Stop();

va2012
شنبه 25 شهریور 1391, 11:21 صبح
ممنون از دوستان . ولی منم میگم که تایمر عمل نمیکنه و دنبال دلیلش هستم. کد تایمر هم درسته چون اگر فرم Splash رو جدا استفاده کنم خیلی خوب کار میکنه.

این کدهای من برای اجرای فرم Splash هست :

این قسمت مربوط به کدهای کلاس Program.cs هست :
static class Program
{
public static LoadingForm lodingForm = null;

/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("fa-IR");
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);

lodingForm = new LoadingForm();
lodingForm.Show();
lodingForm.Refresh();

Application.Run(new MainForm());
}
}
این قسمت هم مربوط به لود فرم اصلی هست :

private void MainForm_Load(object sender, EventArgs e)
{
Program.lodingForm.Refresh();
// کدهای لود فرم اصلی
Program.lodingForm.Close();

}

و اما کدهای مربوط به فعال کردن تایمر در فرم Spalsh :

progressBarX1.PerformStep();

if (progressBar1.Value == progressBar1.Maximum)
{
timer1.Enabled = false;

this.Hide();
MainForm x = new MainForm();
x.ShowDialog();

}