2013-01-12 8 views
0

나는 프로그래밍의 초보자 일 뿐이며, 함수 하나를 만들었는데, 어리석은 한 가지 문제와 아주 어리석은 질문. 무례하지 말아라. 어떻게 다른 폼이나 클래스에서이 함수를 호출 할까? 또는 편집 같은 형태이 메서드를 호출하는 방법?

public void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) 
{ 
      for (int i = 0; i <= dtInfo.Rows.Count - 2;i++) 
      { 
       Battery = Convert.ToDateTime(dtInfo.Rows[i].Cells[5].Value.ToString()); 
       Oil = Convert.ToDateTime(dtInfo.Rows[i].Cells[14].Value.ToString()); 
       Fran = Convert.ToDateTime(dtInfo.Rows[i].Cells[12].Value.ToString()); 
       lastkm = int.Parse(dtInfo.Rows[i].Cells[13].Value.ToString()); 

      batt = Battery - DateTime.Now; 
      doil = Oil - DateTime.Now; 
      dfran = Fran - DateTime.Now; 

      if (batt.Days <= 7) 
      { 
       dtInfo.Rows[i].Cells[5].Style.BackColor = Color.Green; 

      } 
      if (doil.Days <= 7) 
      { 
       dtInfo.Rows[i].Cells[14].Style.BackColor = Color.Green; 
      } 
      if (dfran.Days <= 7) 
      { 
       dtInfo.Rows[i].Cells[12].Style.BackColor = Color.Green; 

      } 
      if (lastkm <= 500) 
      { 
       dtInfo.Rows[i].Cells[13].Style.BackColor = Color.Green; 
      } 



     } 
    } 

first open form 내가 처음 내 양식을 열

색상 변화는 내가 그것을 reopened form 이 변경 실 거예요 다시 열 때하지만 때 내가 코드에게의 값을 추적 색상 변화가 아니라 이벤트 핸들러의 셀

+0

이 참고로, 귀하의 질문에 당신은 모든 방법을 게시 할 필요가 없습니다 그러나 당신은 당신이 단지 할 수있는 몇 가지 이유를 호출해야하는 경우

, DataGridViewBindingCompleteEventArgs e)') –

답변

4

의 색상, 그리고 당신은 이벤트 자신을 제기하지 않는 한 :

  1. 클래스는 보호 된 (또는 공용) 메서드를 직접 발생 시키지만 .NET 클래스에서는 일반적으로 발생하지 않습니다.

  2. 실제 이벤트가 나타내는 것을 실행하여 트리거합니다. - 귀하의 경우 그리드와 소스 간의 데이터 바인딩이 완료되면 트리거합니다.

이벤트를 발생시키지 않으므로 해당 방법을 호출 할 수 있지만 관련성이 없습니다. 또, 이벤트 논리는 중요하지 않습니다 그리고 당신은 단지 코드가 실행하려는 경우, 당신은 그것을 통해 수행 할 수 있습니다

dataGridView1_DataBindingComplete(null, null); 

그러나이 경우에

, 당신은 단지 간단한 방법으로 그 방법의 내용을 포장 할 수 있습니다 반환 유형은 void이며 매개 변수는 없습니다.

+0

실제로 DataGridview에서 셀의 색상을 변경하려고합니다. 전에 public void dataGridView1_DataBindingComplete (객체 발신자, DataGridViewBindingCompleteEventArgs e) {function ....을 사용하기 전에 DataGridview 셀이 색상을 변경합니다 ...하지만 닫고 다시 열면 색상이 변경되지 않습니다 ... – user974015

+0

@ user974015 "닫고 다시 열어 라"는 것은 무엇을 의미합니까? 이벤트에 핸들러를 추가합니까? – Mir

+0

처럼 ... 양식을 닫으면 ... 다시 열어주세요.DataGridview 셀은 더 이상 색을 바꿀 수 없습니다 ... 그러나 추적 할 때 ... 셀이 배경색의 값을 가져 오지만 적용되지 않습니다 ... Visual DataGrid에서 – user974015

0

dataGridView1_DataBindingComplete()는 같은 개체에서 호출 할 경우

dataGridView1_DataBindingComplete(this, new RoutedEventArs()); 

트릭을 할해야 그냥 평범한 오래된 방법이다.

코드 섹션을 다시 사용하려면 다른 메서드 나 다른 개체에서 호출 할 수 있도록 메서드 내에서 모든 메서드를 사용하고 별도의 public 메서드를 만듭니다.

0

모든 기능은 위치에 따라 다릅니다. 양식과 동일한 클래스 아래에있는 경우 동일한 범위에서 호출 할 수 있습니다. 그러나 내가 본 것으로부터 이것은 이벤트 핸들러이며 dataGridView 이벤트 "DataBindingComplete"를 처리 할 때 호출 할 필요가 없습니다. 자세한 내용은 this을 방문하십시오. 만 서명 (`공공 무효 dataGridView1_DataBindingComplete (개체를 보낸 사람 -

dataGridView1_DataBindingComplete(null, null) 
관련 문제