2011-09-15 6 views
4

한 번의 클릭으로 DataGrid에서 모든 열을 제거 할 수 있습니까?Datagridview 모든 열 제거

나는 루프를 만들 수 있고 하나씩 제거하거나 모든 것을 제거하고 만들 수 있음을 알고있다.

그러나 사용자가 새로 시작할 수 있도록 열을 지우고 그리드를 그대로 둘 수 있습니다. 즉 다시 원래 상태로 되돌립니다. 여기 OK

번이 방법을 실행

값 그리고 난 사과와 배라는 두 colums와 데이터 그리드를 얻을 정도로, _values을 가정 배를 사과했다 할 수 있습니다 내가

private void PopulateGrid() 
    { 
     UserVGrid.AutoGenerateColumns = false; 
     UserVGrid.Columns.Clear(); 
     List<string> _values = populate.GetVaribles; 
     foreach (var line in _values) 
     { 
      if (!line.Contains("Startind")) 
      { 
       string[] newline = line.Split('='); 
       DataGridViewColumn newColumn = new DataGridViewTextBoxColumn(); 
       newColumn.Name = newline[0]; 
       newColumn.HeaderText = newline[1]; 
       newColumn.ToolTipText = newline[2]; 
       UserVGrid.Columns.Add(newColumn); 

      } 
     } 

이 코드입니다.

이번에는 _values ​​containg char, table을 사용하여 두 번째 실행합니다.
그리고 나는 4 개의 열과 사과, 배, 의자 및 테이블로 끝납니다. 내가 원하는 것은 그리드 주먹을 지우고 새로운 칼럼을 적용한 두 번째 실행입니다.

건배

아론

답변

20

DataGridView 열 컬렉션 명확한() 메소드를 갖는다.

dataGridView1.Columns.Clear(); 

이 바인딩 된 DataGridView와 자동 생성 된 열이 작동하지 않습니다 - 단순히 널 (null) 또는 빈 데이터 소스와 데이터 소스를 교체하는 경우 :

dataGridView1.DataSource = null; 

또는 자동 생성을 끄고 열을 만들 코드에서 :

dataGridView1.AutoGenerateColumns = false; 
DataGridViewTextBoxColumn col = new DataGridViewTextBoxColumn(); 
dataGridView1.Columns.Add(col); 

이러한 수동 생성 된 열은 Clear() 메서드에 의해 제거됩니다.

+0

대신 모든 데이터를 제거하지만 그리드는 그대로 두려고합니까? 그리드를 원래 상태로 되돌리려하는 질문의 일부는 분명하지 않았습니다. –

+0

미안하지만, 필자가 원하는 것은 coloum을 제거하는 것입니다. 기본적으로 dataview는 텍스트 파일 설정에서 채워집니다. 두 번 열면 복제본이 생깁니다. 그래서 일부 코드를 데이터보기에서 현재 열을 모두 제거하려면 싶습니다. – DevilWAH

+1

@DevilWAH 그 경우 내 대답은 정확히 당신이 원하는대로 - 자동 생성 된 열 주위에 명백한주의 사항이 있습니다. –

0

날 여기

List<string> lstOverride = new List<string>(); 
       lstOverride.Add("IssuerOnly"); 
       lstOverride.Add("TickerOnly"); 
       lstOverride.Add("All"); 
       lstOverride.Add("Private Equity"); 
       lstOverride.Add("Ignore"); 
       DataGridViewComboBoxColumn cmb = new  DataGridViewComboBoxColumn(); 
       cmb.HeaderText = "Override"; 
       cmb.Name = "cmb"; 
       cmb.DataSource = lstOverride; 
       cmb.DataPropertyName = "Override"; 
       dgvWebData.Columns.Add(cmb); 

위해 일한 나는 DataGridViewComboBoxColumn을 추가하고 내가 드롭 다운을하는 데 필요한 컬럼에의 DataPropertyName을 설정 한 것입니다.

0

지우기 당신이 "P_Comment"같이 할 수있는 DataGridView의 열을 제거하는 것도

dg.DataSource = Nothing 
0

에 데이터 테이블

If ds.Tables.Count > 0 Then 
    ds.Tables(0).Columns.Clear() 
    ds.Tables(0).Rows.Clear() 
End If 

및 설정 DataGridView에 데이터 소스는

 dataGridView1.Columns.Remove("p_Comment"); 
이름

열입니다

및 모든 열을 제거하려면

을 사용할 수 있습니다.
dataGridView1.Columns.Clear();