2013-02-25 17 views
1

在WinForm應用程序中,我有一個包含GridView的表單,我通過收集數據庫中的數據來填充GridView。 我有一個pictureBox,其中包含一個Loading.gif圖像。 我想要什麼是在從數據庫檢索數據期間查看PictureBox。在檢索數據時查看Loading.gif圖像C#

我試過婁代碼,但它沒有工作...

private void Generate_Button_Click(object sender, EventArgs e) 
{    
     pictureBox1.Visible = true;  
     {  
      Generate_Button.Text = "Done"; 
      if (conn.State == ConnectionState.Closed) 
       conn.Open();     
      radGridView1.Columns.Add(new GridViewTextBoxColumn("Account No.")); 
      radGridView1.Columns[0].Width = 85; 
      bool DataAvailable = false; 
      if (MainAccNo_TextBox.Text == "" && CurencyNo_TextBox.Text == "") 
      { 
       if (SeparateBy_DropDownList.Text == "4") 
       { 
        for (int i = 1; i <= 9; i++) 
        { 
         for (int j = 0; j <= 9; j++) 
         { 
          for (int k = 0; k <= 9; k++) 
          { 
           for (int l = 0; l <= 9; l++) 
           { 
            SqlCommand cmd_AccNo = new SqlCommand("Select distinct(AccNo) from JourTrans where AccNo like '" + i + "" + j + "" + k + "" + l + "%'", conn); 
            SqlDataReader reader_AccNo = cmd_AccNo.ExecuteReader();  
            radGridView1.Rows.Add(i + "" + j + "" + k + "" + l); 
            while (reader_AccNo.Read()) 
            { 
             Accounts.Add(reader_AccNo["AccNo"].ToString()); 
             radGridView1.Rows.Add(reader_AccNo["AccNo"].ToString()); 
             DataAvailable = true; 
            } 
            reader_AccNo.Close(); 
            if (DataAvailable == true) 
            { 
             radGridView1.Rows.Add(""); 
             DataAvailable = false; 
            } 
            else 
             radGridView1.Rows.RemoveAt(radGridView1.Rows.Count - 1); 
           } 
          } 
         } 
        } 
       } 
      } 
     }     
    pictureBox1.Visible = false; 
    }  

http://soundfrost.org/>下載Youtube視頻

回答

2

做你的檢索在另一線程和使用分派器,以便您可以從該線程訪問您的控件:

pictureBox1.Visible = true; 
Dispatcher.BeginInvoke(new MethodInvoker(() => 
{  
    for (int i = 1; i <= 9; i++) 
    {            
     //Here I am retrieving data from the database  
    } 
    pictureBox1.Visible = false; 
})); 
+0

感謝@voo for writing,b我正在運行一個WinForm應用程序.. – fadd 2013-02-26 07:07:09

+0

哦。然後,也許這個鏈接將幫助你http://stackoverflow.com/questions/303116/system-windows-threading-dispatcher-and-winforms – Alex 2013-02-26 07:31:56

+0

而且我編輯我的問題顯示我的確切代碼 – fadd 2013-02-26 07:36:15