2015-01-16 2 views
1

다른 행과 비교하여 일부 datagridview 행의 서식을 지정하려고합니다.다른 모든 행과 행을 비교하는 각 루프에 대해 vb.net

여기에 제가 지금까지 가지고있는 코드가 있습니다.

For Each row As DataGridViewRow In DaisyServicesForm.DataGridView1.Rows 

     If row.Cells("UnitCost").Value = row.Cells("UnitCost").Value And (row.Cells("FromDate").Value <= row.Cells("ToDate").Value And row.Cells("ToDate").Value >= row.Cells("FromDate").Value) Then 
      row.DefaultCellStyle.ForeColor = Color.Blue 
     End If 
    Next 

하지만 VB 자신에 행을 비교하고 싶지 않아, 나는 그것이 첫 번째 행을 한 후 다른 모든 행과 비교 ... 그리고 두 번째 행을 영원히 서로 것을 비교하려면 열. 의미가

i.unitcost = i2.unitcost 
and ((i.FromDate <= i2.ToDate) 
and (i.ToDate >= i2.FromDate)) 

희망, 크게 감사합니다 도움이 : 그것은 SQL에있는 경우

그것과 같을 것입니다.

+0

아마도 내가 틀렸을 것입니다.하지만 목표에 도달하면 파란색이 많이 보입니다. – Steve

+0

다른 조건이 있습니다.이 코드는 예제 코드입니다. – user3580480

+0

두 번째 For 루프가 필요합니다. 하지만 행을 다른 행 (아마도 이미 변경 한 행)과 비교하면 다른 문제가 발생할 수 있다는 점을 염려합니다. 여기 목표가 뭐지? 데이터 소스 만 비교할 수도 있습니다. – Kat

답변

1

각 항목 (행)이 반복되고 목록과 다른 모든 항목 (격자)을 비교하려면 내면 For Loop가 필요합니다.

For Each rowOuter As DataGridViewRow In DaisyServicesForm.DataGridView1.Rows 
    For Each rowInner As DataGridViewRow In DaisyServicesForm.DataGridView1.Rows 
     If rowOuter.Cells("UnitCost").Value = rowInner.Cells("UnitCost").Value And 
      (rowOuter.Cells("FromDate").Value <= rowInner.Cells("ToDate").Value And rowOuter.Cells("ToDate").Value >= rowInner.Cells("FromDate").Value) Then 
      rowOuter.DefaultCellStyle.ForeColor = Color.Blue 
    End If 
    Next 
Next 
  • 제 1 외측 행은 모든 행에 자신을 비교한다.
  • 다음 외부 행은 자체를 모든 행과 비교합니다.
  • ...
  • 마지막 행은 그 자체를 모든 행과 비교합니다.

내가 가지고있는 if 문을 확인해야하지만 생각은 효과가 있습니다. 또한 행을 자체적으로 검사하는 경우 검사를 추가해야합니다.

+0

정확히 내가 무엇을 찾고 있었습니까. 감사 – user3580480

관련 문제