2013-02-28 3 views
3

나는 DataGridView을 가지고 있는데, 첫 번째 열의 셀을 선택하고 싶습니다.셀 값을 선택하는 방법은 무엇입니까?

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) 
{ 
    name = dataGridView1.CurrentRow.Cells[0].Value.ToString(); 
} 

현재 내 이름 변수가 null입니다 :

Heres는 내 datagridview.Click 방법이다.

내가 뭘 잘못하고 있니?

enter image description here

+0

CellClick 이벤트를 연결했지만 코드가 CellContentClick 메서드에 있습니다. 오식? – LarsTech

+0

@LarsTech 많은 감사합니다! 나는 잘못된 셀 클릭 방식으로 유선화했다! – user1352057

답변

2

로 CurrentRow 아직 설정 때문에 이벤트 인수에 대해 rowIndex에 속성을 사용하지 않을 수 있습니다. 이런 식보십시오 : 확인,

void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { 
    if (e.RowIndex > -1 && dataGridView1.Rows[e.RowIndex].Cells[0].Value != null) { 
    name = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString(); 
    } 
} 

그리고 단지 경우를 이벤트까지 연결되어 있습니다 :

public Form1() { 
    InitializeComponent(); 
    dataGridView1.CellClick += dataGridView1_CellClick; 
} 
+0

답변 해 주셔서 감사합니다. name 변수는 여전히 null입니다. 나는 현재 null 값인 경우 전달 된 값이 'delete object'에 전달되는 것을 허용하지 않는 오류 검사를 가지고 있는데, 이것이 트리거됩니다. – user1352057

+0

@ user1352057'dataGridView1' 자체가 null 인 경우 –

+0

@ user1352057 CurrentRow 대신 RowIndex를 사용했음을 알았습니다. 이름이 실제로는 null 일 수는 없지만 문자열이기 때문에 셀 값은 null입니다. 첫 번째 열에는 어떤 정보가 있습니까? – LarsTech

-1
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) 
{ 
    object name = dataGridView1.Rows[e.RowIndex].Cells[0].Value; 
    MessageBox.Show(name.ToString() == string.Empty ? "myvalue" : name.ToString()); 
} 
+1

이것은 선택된 셀 값을 가져 오지 않습니다. (우연히 선택한 셀이 왼쪽 위 모서리에있는 셀이 아니면) –

+0

게다가, ';' 성명서 끝에 –

0

당신은이 작업을 수행 할 수 있습니다 : 때때로

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) 
    { 
     var view = (sender as DataGridView); //<-- notes this 
     var currentCellString = view.CurrentCell.Value.ToString(); 
    } 

당신이 필요로하는 사용중인 sender 개체를 잡아라 - 항상 업데이트 될 것이기 때문에.

관련 문제