2012-03-02 184 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(); 
    } 
相关问题