2017-10-18 177 views
1
Label[] l1 = new Label[30];  
DataTable dt = ConsoleApp2.CitiesDB.getCities(this.region); 
       foreach(DataRow row in dt.Rows) 
       { 
        count++; 
        string city = row.Field<string>("city"); 
        l1[count] = new Label(); 
        l1[count].Location = new System.Drawing.Point(x,y); 
        l1[count].Size = new Size(140, 80); 
        l1[count].Font = new System.Drawing.Font("Century Gothic", 8.5F); 
        l1[count].Text = city; 
        x = x + 260; 
        this.Controls.Add(l1[count]); 
        this.Refresh(); 
        if(count == 4 || count %4 ==0) 
        { 
         y = y + 150; 
         x = 40; 
        } 
       //l1[count].Click += new EventHandler(l1_click); 
      } 

所以我做了一个动态标签(每个标签是一个城市名称)。我怎样才能让每个标签点击?我有一个注册表格 - 我想要的是如果用户点击“纽约”,然后在“城市”文本框中出现。与EventHandler的方式不适合我);.我能做什么? 我的意思的代码,不工作:c#添加动态点击事件

protected void l1_click(object sender, EventArgs e) 
    { 
     RegisterForm register = new RegisterForm(username,email,password,address,phone); 
     register.state.Text = region; 
     register.city.Text = l1[count].Text; 
     register.Show(); 
    } 

感谢(:

每个标签

回答

1

分配一个click事件:

l1[count].Click += l1_click; 

Click事件中使用发件人的说法,看看哪些被点击标签:

protected void l1_click(object sender, EventArgs e) 
{ 
    Label lbl = (Label)sender; 
    MessageBox.Show(lbl.Text); 
+0

谢谢你,它的工作(: – Daniel

+0

勾选一个对于几点是正确的 –

相关问题