2009-11-09 4 views
0

현재 컨트롤에 상속 될 때 DataGridView.Rows.Add 함수를 호출하는 가장 좋은 방법은 비교적 간단합니다. 상속 된 컨트롤을 호출하는 가장 좋은 방법은 무엇입니까? 호출에서 직접 호출하거나 재귀 적 함수를 사용하여 호출하십시오. 둘 다 동일한 결과를 생성하는 것으로 보이고 행이 추가되고 수량이 반환되지만 가장 효율적입니다.상속 된 컨트롤에 대해 크로스 스레딩 호출 함수가 더 낫습니다.

대리인 : Private Delegate Function ReturnDelegate() As Object

두 가지 방법은 다음과 같습니다
A)

Private Overloads Function AddRow() As Integer 
    If InvokeRequired Then 
     Return CInt(Invoke(New ReturnDelegate(AddressOf AddRow))) 
    Else 
     Return Rows.Add() 
    End If 
End Function 

또는

B)

Private Function RowsAdd() As Integer 
    If Me.InvokeRequired Then 
     Return CInt(Me.Invoke(New ReturnDelegate(AddressOf MyBase.Rows.Add))) 
    Else 
     Return MyBase.Rows.Add 
    End If 
End Function 

답변

0

보통 내가 배치하여 효율성을 돌볼 BeginUpdate() EndUpdate() m 주변 블록 y 일련의 업데이트.

+0

이러한 작업은 BeginUpdate() 트랜잭션, EndUpdate (true) 블록 및 EndUpdate (false) 블록을 사용하여 블록화하여 코딩해야합니다. – GregC

+0

DataGridView 또는 행 컨트롤에 대한 BeginUpdate 및 EndUpdate가 없습니다. 코드 예제를 제공 할 수 있습니까? – Stevoni

관련 문제