2017-10-21 69 views
1

的一部分,我用这个代码用两行文字创建按钮选择按钮的文本

private void button1_Click(object sender, EventArgs e) 
{ 
    int top = 50; 
    int left = 100; 
    int n = 0; 
    int s = 99; 
    for (int i = 0; i < 20; i++) 
    { 
     Button button = new Button(); 
     button.Left = left; 
     button.Top = top; 
     panel1.Controls.Add(button); // here 
     button.Size = new Size(50, 50); 
     if (i == 4 || i == 9||i==14||i==19) 
     { 
      top = 30; 
      left = 23; 
      top +=button.Top+2; 
      left += button.Width+2; 
     } 
     else 
      left += button.Width + 2; 

     n = n + 1; 
     s = s + 1; 

     button.Text = Convert.ToString(n) + Environment.NewLine + Convert.ToString(s); 
     button.Click += Button_Click; 
    }  
} 
private void Button_Click(object sender, EventArgs e) 
{ 
    string s; 
    Button button = (Button)sender; 
    s = button.Text + Environment.NewLine; 
    MessageBox.Show(s); 
} 

所以我需要只选择第二行西布朗我的按钮上的文字,当我点击动态按钮。我将如何做到这一点?

回答

0

可以存储一些数据Tag属性:

button.Text = Convert.ToString(n) + Environment.NewLine + Convert.ToString(s); 
button.Tag = new int[] { n, s }; 

后来retrive它与用途:

private void Button_Click(object sender, EventArgs e) 
{ 
    Button button = (Button)sender; 
    var data = button.Tag as int[]; 
    string s = data[1].ToString(); 
    MessageBox.Show(s); 
} 
0
private void Button_Click(object sender, EventArgs e) 
{ 
    string s; 
    Button button = (Button)sender; 
    s = button.Text + Environment.NewLine; 
    MessageBox.Show(button.Text.Split(new[] { Environment.NewLine }, StringSplitOptions.None)[1]); 
} 
相关问题