2009-09-25 8 views
1

런타임에 Panel 객체 배열 (다른 항목 포함)을 폼에 추가합니다. 그런 다음, 정말 같은 루프 내에서 각 패널에 클릭 이벤트를 할당 해요 :마우스 감지 컨트롤 배열 클릭

pnlInstrument[index].Click += pnlInstrument_Click; 

빈 클릭 기능은 다음과 같습니다

private void pnlInstrument_Click(object sender, EventArgs e) 
{ 

} 

는 이벤트가 올바르게 트리거,하지만 내가 어떻게 할 수있다 어떤 패널을 클릭했는지 알려주시겠습니까?

답변

5

사용을 이벤트 방식의 sender 매개 변수 ..

private void pnlInstrument_Click(object sender, EventArgs e) 
{ 
    Panel panel = (sender as Panel); //This is the panel. 
} 

편집 : 점점 인덱스의 의견을 ..

private void pnlInstrument_Click(object sender, EventArgs e) 
{ 
    Panel panel = (sender as Panel); //This is the panel. 
    int panelIndex = Array.IndexOf(pnlInstrument, panel); 
}  
+1

날 이길 선생님. +1;) – JustLoren

+0

나는 과다 노출에 그것을 비난한다! –

+0

중도에 거기! 배열에서 객체의 인덱스를 가져올 수 있습니까? –

0

가 왜 :

pnlInstrument[index].Click += pnlInstrument_Click; 
pnlInstrument[index].Tag += index; 

private void pnlInstrument_Click(object sender, EventArgs e) 
{ 
    Panel pnl = (Panel)sender; 
    int index = (int)pnl.Tag; 
} 
관련 문제