2014-07-09 2 views
0

C# Visual Studio 2013을 강제로 새로 고치는 간단한 방법이 있습니까?DataGridView는 단순히 새로 고치지 않습니다

frmDomain_Load에서 실행하지 않으면 작동하지 않습니다. 언제든지 다시 실행하면 (즉, 일부 값을 nDomains에 추가하려고 할 때) 새로 고치지 않으면 작동합니다. grid.Refresh()를 호출

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(); 
} 
+0

새로 고침 문제를 넘어서는 정보를 저장하면 안됩니다. – Limey

+0

* (구속) : -S 반응하지 않을 것입니다. * – user26676

+0

열을 지울 필요는 없습니다. DataGridViews의 DataSource 속성을 살펴볼 수 있습니다. 예 : domainDataGridView.DataSource = nDomains; – fabricio

답변

0

그냥 반드시 새로운 데이터로 다시 그리도록 강제하지 않는 다시 그리기를 수행하게됩니다. 그리드는 데이터가 변경된 것을 알지 못하므로 이전 데이터로 다시 그리는 것일뿐입니다.

List(Of String)System.ComponentModel.BindingList(Of String)으로 변경하면 데이터가 변경 될 때 눈금이 통지됩니다. 이렇게하면 항목이 추가/제거 될 때마다 자동으로 새로 고쳐야합니다.

관련 문제