2017-11-02 11 views

답변

0

에 datagridview2의 또 다른 DataGridView에 세포와 datagridview1의 DataGridView에 셀을 비교할 수 있습니다. 마음에 쓰지 않아서 약간의 구문 오류가있을 수 있습니다. 하지만이 일로 너를 도왔 으면 좋겠어.

datagridview1 자체에서 이벤트를 정의하는 것을 잊지 마십시오. (under datagridview1> properties> events)

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) 
    { 
      string dgv1value = dataGridView1.Rows[e.Rowindex].Cells[e.Columnindex].Value.ToString(); 
      foreach (DataGridViewRow row in datagridview2.rows) 
      { 
       if (row.Cells[0].Value.ToString() == dgv1value) 
       { 
        //Continue your code here 
       } 
      } 
    } 

아직 해결되지 않은 경우 의견에 말씀해주십시오.

0
public static void CompareDataGridColumnForward(DataGridView dgv1, DataGridView dgv2) 
    { 
     try 
     { 
      for (int i = dgv1.RowCount - 1; i >= 0; i--) 
      { 
       for (int j = 0; j < dgv2.RowCount - 1; j++) 
       { 
        string dgv1value = dgv1.Rows[i].Cells[0].Value.ToString(); 
        foreach (DataGridViewRow row in dgv2.Rows) 
        { 
         if (row.Cells[0].Value.ToString() == dgv1value) 
         { 
          row.DefaultCellStyle.BackColor = Color.Red; 
         } 
        } 
       } 
      } 
     } 
     catch (Exception e) 
     { 
      Debug.WriteLine(e); 
     } 
    } 

    public static void CompareDataGridColumnReverse(DataGridView dgv1, DataGridView dgv2) 
    { 
     try 
     { 
      for (int i = dgv2.RowCount - 1; i >= 0; i--) 
      { 
       for (int j = 0; j < dgv2.RowCount - 1; j++) 
       { 
        string dgv2value = dgv2.Rows[i].Cells[0].Value.ToString(); 
        foreach (DataGridViewRow row in dgv1.Rows) 
        { 
         if (row.Cells[0].Value.ToString() == dgv2value) 
         { 
          row.DefaultCellStyle.BackColor = Color.Red; 
         } 
        } 
       } 
      } 
     } 
     catch (Exception e) 
     { 
      Debug.WriteLine(e); 
     } 
    } 
+0

두 개의 DataGridview에 대한 데이터로드시 CompareDataGridColumnReverse 및 CompareDataGridColumnForward가 호출됩니다. – Multithreadke