2012-03-02 121 views
0

我希望DGV的第一行單元格不被選中,每當我的應用程序初始化時。我正在使用下面的代碼,但它只適用於禁用Timer(我真的不知道原因)。無法清除DataGridView突出顯示的第一個單元格

private void BindData() 
{ 
      try 
      { 
       DataTable dt = DeviceData.BindData(BMS_Controls.ClsConstant.DEVICETYPE.PRIMARY_PUMPS.ToString()); 
       bindingSource1.DataSource = dt; 
       dataGridView1.DataSource = bindingSource1; 
       dataGridView1.ClearSelection(); 
       dataGridView1.Refresh(); 
      } 
      catch (Exception err) 
      { 
       MessageBox.Show(err.Message); 
      } 
    } 

    private void frmPrimaryPumps_Load(object sender, EventArgs e) 
    { 
      BindData(); 
      timer1.Interval = 1000; 
      timer1.Start(); 

    } 

我用定時器調用1秒的等待後BindData方法。

任何人都可以請告訴我如何禁用第一行選擇,併成功使用Timer調用BindData方法?

+0

我已經試過這個,但我的結果如預期。唯一讓我想到的是,您的網格可編輯並設置爲EditOnEnter,在這種情況下,它不是網格問題,而是編輯控制問題。 – 2012-03-02 10:49:24

回答

1

您應該在分配DataSource後嘗試設置datagridview1.CurrentCell = null,這應該從網格中刪除第一行/單元格的選擇。

+0

我已經使用過這個屬性,但它不起作用。請給出一些其他解決方案。 – Stardust 2012-03-02 09:44:26

0

它爲我與添加您已經添加了一行:

dataGridView1.ClearSelection(); 

嘗試刪除刷新方法。

0

請致電

dgv.ClearSelection();

上DataBindingsCompleted事件

像以下

dgv.DataBindingComplete + =新DataGridViewBindingCompleteEventHandler(dgv_DataBindingComplete);

private void dgv_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) 
    { 
     DataGridView d = sender as DataGridView; 
     d.ClearSelection(); 
    } 
相關問題