private void button1_Click(object sender, EventArgs e)
        {
            this.dataGridView1.DataSource = null;
            frm = new Form1(this);
            frm.Show ();
            threadday = null;
          threadday = new Thread(new ThreadStart(SearchThread));         
            threadday.Start();
           }
 private delegate void ChangeCallBack();
        bool m_bSearchThread = true;
        public void SearchThread()
        {
            m_bSearchThread = true;
            if (m_bSearchThread)
                ChangeCall();           
        }private void ChangeCall()
        {
            if (this.InvokeRequired)
            {
                ChangeCallBack callback = new ChangeCallBack(ChangeCall);
                this.Invoke(callback, new object[] { });
            }
            else
            {
                ds = controlAver.GetAverValueProData();
                this.DsbindingSource.DataSource = ds.Tables[0];
this.dataGridView1.DataSource = DsbindingSource;
}
form1弹出后form1上就得不到焦点。也就是不能进行操作了。请教为什么,怎么修改!谢谢了。

解决方案 »

  1.   


     private delegate void ChangeCallBack();
            bool m_bSearchThread = true;
            public void SearchThread()
            {
                m_bSearchThread = true;
                if (m_bSearchThread)
                    ChangeCall();   // 如果屏蔽此语句
    int j=0;
    for(int i=0;i<100000;i++)
    {
      j++;
    }        
            }
    这样做是可以显示并且可以操作form1的。
      

  2.   

    frm = new Form1(this);//这个怎么讲啊??frm = new Form ; //这样才对吧
      

  3.   

    to jiatong1981(末日之痕)  我吧构造函数给修改了一下。传了个参数过去而已。