2011-11-12 7 views
1

나는 C#에서 Datagridview를 가진 Windows Form을 가지고 있습니다. 데이터베이스 및 일부 콤보 상자, 텍스트 상자 및 버튼의 레코드를progressbar 및 데이터로드

그래서 메인 폼의 데이터로드가 최종 사용자를 괴롭히지 않도록 progressbar와 backgroundworker가있는 다른 폼을 사용했습니다.

public partial class FirstForm : Form 
{ 
    MainForm mf; 
    public FirstForm() 
    { 
     InitializeComponent(); 
     backgroundWorker1.RunWorkerAsync(); 
    } 

    private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) 
    { 
     mf = new MainForm(); //inside constructor,code of data loading in gridview 
     mf.Update(); 
    } 
    private void timer1_Tick(object sender, EventArgs e) 
    { 
     if (p1.Value < p1.Maximum)   //p1 name for progressbar 
      p1.Value++; 
     else 
     { 
      timer1.Enabled = false; 
      this.Hide(); 
      mf.Show(); 
     } 
    } 

} 

있지만 기본 폼이 표시 될 때, 그것은 빈 2/3 초 DataGridView에 다른 컨트롤이 나타납니다 후입니다.

어떻게 해결할 수 있습니까?
또는이 문제를 해결하기위한 다른 아이디어를 제안하십시오.

답변

0

programs.cs

static void Main() 
{ 
    Application.EnableVisualStyles(); 
    Application.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture; 

    Application.SetCompatibleTextRenderingDefault(false); 

     System.ComponentModel.BackgroundWorker bw = new System.ComponentModel.BackgroundWorker(); 
     bw.DoWork += new System.ComponentModel.DoWorkEventHandler(bw_DoWork); 
     bw.WorkerSupportsCancellation = true; 
     MainForm = new MainForm(); // creating main form 

bw.RunWorkerAsync에 Firstform와 쓰기 내에서 코드를 제거(); frm.Inittiate(); //로드 및 초기화 할 첫 번째 양식에이 메서드를 추가하십시오.

 bw.CancelAsync(); // ending splashing 
     Application.Run(frm); 
}  

static void bw_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e) 
{ 
    AFirstForm splashForm = new FirstForm(); 
    splashForm.TopMost = true; 
    splashForm.Show(); 
    while (!(sender as System.ComponentModel.BackgroundWorker).CancellationPending) 
    { 
     splashForm.Refresh(); 
    } 
    splashForm.Close();  
    e.Result = splashForm; 
} 
+0

빠른 응답을 보내 주셔서 감사하지만 출력에는 변화가 없습니다. – aarti

+0

뭔가 스플래시 화면을 표시 하시겠습니까? – DeveloperX

+0

예, 문제를 해결할 수 있습니다. – aarti