DataGridView根本不会刷新

时间:2014-07-09 16:33:24

标签: c# datagridview visual-studio-2013

是否有一种强制C# Visual Studio 2013刷新的简单方法?

这不起作用,除非我在frmDomain_Load上运行它然后它可以工作,如果我在任何时候重新运行它(即当我想向nDomains添加一些值时)它不会刷新。< / p>

public DataGridView domainDataGridView { get; set; }
public List<string> nDomains = new List<string>();

public void AddToGrid(){
    nDomains.Add("Brazil 1");
    nDomains.Add("Germany 7");
}

public void RefreshGrid(){
      domainDataGridView.Rows.Clear();
      domainDataGridView.Columns.Clear();

      domainDataGridView.ColumnCount = 1;

      domainDataGridView.Columns[0].Name = "Domain";
      domainDataGridView.Columns[0].Width = 251;

      foreach (String myDomain in nDomains)
      {
           domainDataGridView.Rows.Add(myDomain);
      }
      domainDataGridView.Refresh();
}

1 个答案:

答案 0 :(得分:0)

调用grid.Refresh()只会导致重绘,这并不一定会强制重绘任何新数据。由于网格不知道数据已经改变,它可能只是用以前的数据重绘。

如果您将List(Of String)更改为System.ComponentModel.BindingList(Of String),则会在数据更改时通知网格。这应该会在添加/删除项目时自动刷新。