2009-07-06 6 views
6

항상 적어도 하나의 행을 항상 선택하는 것으로 보이는 winforms datagridview가 있습니다. 나는 정말로 열을 선택할 수있는 것에 관심이 없다. 사용자가 열 1의 체크 박스를 선택할 수 있어야한다. 왜 항상 적어도 1 개의 행이 선택된가? 어떻게 방지 할 수 있습니까? column1의 확인란을 선택하는 기능에 영향을 줍니까?C# WinForms DataGridView - 상수 행 선택!

this.dataGridView1.AllowUserToAddRows = false; 
this.dataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True; 
this.dataGridView1.DefaultCellStyle.ForeColor = Color.Black; 
this.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; 
this.dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; 
this.dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect; 
this.dataGridView1.MultiSelect = false; 
this.dataGridView1.RowHeadersVisible = false; 
this.dataGridView1.RowsDefaultCellStyle.BackColor = Color.WhiteSmoke; 
this.dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.LightGray; 
this.dataGridView1.ColumnCount = 0; 

colSelect = new DataGridViewCheckBoxColumn(); 
colSelect.HeaderText = "Select Message"; 
colSelect.Width = 90; 
this.dataGridView1.Columns.Insert(0, colSelect); 
this.dataGridView1.Columns[0].DataPropertyName = "msgSelect"; 

답변

3

CellSelect로 변경 그들을 그냥 한 번에 하나 개의 체크 박스를 선택합니다.

또한 특정 열을 읽기 전용으로 허용하여 확인란을 열에 만 편집하는 것을 제한 할 수 있습니다. DataGridViewColumn.ReadOnly Property

-1

가있는 DataGridView를 선택

다음은 내 DataGridView를 설정입니다. 그런 다음 속성 창에서 SelectionMode 속성을 찾을 때까지 아래로 스크롤하여 FullColumnSelect로 변경합니다.

은 또한 당신은 당신이 당신의 DataGridView에를 채운 후 당신은 어떤 선택 (들)을 제거하기 위해 DataGridView.ClearSelection()를 사용해야합니다

+0

정확하지 않은지 ........ – Goober

+0

정말요? 선택한 행이 하나 인 이유는 이것이 선택 모드가로 설정 되었기 때문입니다! 그러므로 "한 줄"을 선택하지 않으려면 그것을 바꿀 필요가 있습니다. – Calanus

+1

나는 당신이 질문 Calanus를 이해했다고 생각하지 않습니다. 그는 DataGridView가 기본적으로 목록의 첫 번째 행을 선택하는 것을 중단 할 수있는 방법을 알고 싶어합니다. – James

4

구버, 나는 사용자가 체크 박스를 사용하여 행을 선택해야하는 비슷한 문제가 발생했습니다. 첫 번째 행은 gridview 설정과 관계없이 gridview가 채워진 후에 항상 기본적으로 선택됩니다.) (A ClearSelection을, 첫 번째 행은 매번있는 gridview가 채워집니다 선택되어 있지 않은지 확인하려면

this.dgridvw.DataSource = this.MyTable; 
this.dgridvw.ClearSelection(); 

ClearSelection은() 선택된 모든 행을 삭제합니다.

0

이 아닌지 확인하십시오. 양식 생성자에서 데이터를로드하는 메소드를 호출하십시오. 당신이 form.load()에서 호출 할 경우

또한 DataGridView를 한 후로드가 할이

DataGridView.Rows [0] .Selected = 거짓;

관련 문제