2014-03-12 3 views
0

루프의 동적 레이블을 만들려면 디렉터리의 파일 폴더 목록 레이블을 사용하십시오.이벤트 처리기 만들기

레이블을 클릭하면 레이블 내의 파일이 목록 상자에 표시됩니다. 하지만 이벤트 처리기를 작동시킬 수 없다면, 내 라벨에 표시된 이름을 붙여야 할 필요가있다. 이벤트의 이름이 필요하다고 느낀다.하지만 이름이 동적 인 경우 이벤트 이름도 필요하고 할 수 없다. 그. 또한 이벤트 내에서 레이블 속성에 대한 액세스가 필요하므로 왜 오버로드 된 메서드를 만들지 만 상관없이 레이블을 클릭하면 내 이벤트 처리기 중 하나를 수행하지 않습니다. 조언 해주세요, 고맙겠습니다. 내 루프 내 이벤트 핸들러

    string str = lstMovieFolders[i]; 
        Label lbl = new Label(); 
        lbl.Name = "lbl" + str; 
        lbl.Location = new Point(25, intStartPoint); 
        lbl.Text = str; 
        lbl.Size = new Size(x, y); 
        lbl.Click += new EventHandler(lbl_Click); 
        grp.Controls.Add(lbl); 
        intStartPoint += 30; 

    public static void lbl_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show("HELLOS"); 
    } 
    public static void lbl_Click(object sender, EventArgs e, Label lbl) 
    { 
     MessageBox.Show("HELLO"); 
    } 

답변

1

에 당신은 과부하를

public static void lbl_Click(object sender, EventArgs e) 
{ 
    var label = sender as Label; 
    if(label != null) 
    { 
     string text = label.Text; 

    } 
} 
+0

확인을 필요로하지 않는 event.You를 트리거 현재 Label를 얻을 수 sender 매개 변수를 사용할 수 있습니다 뭐죠 여기에, 어떤 이유하지만, 내가 작성한 코드에서 이벤트 핸들러가 호출되지 않습니까? nvm, 알았다. 도와 줘서 고마워. – dwarf