2014-09-15 2 views
0

내 Windows 양식에 DataGridView 테이블을 사용하고 있습니다.
새 행을 추가하고 동일한 행의 셀 값을 스레드 내부에서 반복적으로 변경하려고합니다.DataGridView에서 행을 추가하고 셀 값을 다른 스레드에서 변경하는 방법은 무엇입니까?

이제는 컨트롤의 텍스트를 변경하는 Invoke 함수를 사용하는 방법을 알고 있습니다. 예를 들어
:

public void SetControlText(Control control, string text) 
{ 
    if (this.InvokeRequired) 
    { 
    this.Invoke(new Action<Control, string>(SetControlText), new object[] { control, text }); 
    } 
    else 
    { 
    control.Text = text; 
    } 
} 

그러나, 나는 DataGridView이 작업을 수행하는 방법을 알아낼 수 없습니다.

답변

1

그것은 정확히 동일한 방식으로 작동 하는가는, 예를 들면 :

public void SetCellText(DataGridView control, int x, int y, string text) 
{ 
    if (this.InvokeRequired) 
    { 
     this.Invoke(() => SetCellText(control, x, y, text)); 
    } 
    else 
    { 
     control[x, y] = text; 
    } 
} 

나는 단지 람다 작업을 사용하도록 Invoke 전화를 변경 - 나는 그것을 좋아하지 더 그런 식으로,하지만 당신의 방법은 ...

를 작동합니다
+0

람다 식을 사용하는 경우 위임을해야합니다. 그렇지 않으면 '람다 식을 System.Delegate로 변환 할 수 없습니다.'라는 오류가 발생합니다. – ankur

+0

오, 예 - 죄송합니다. WPF에서 필요하지 않은 곳에 익숙하다. – ChrFin

관련 문제