-1

此代码将帮助我按此顺序生成标签,例如

A1 A2 A3 A4 A5
B1 B2 B3 B4 B5
C1 C2 C3 C4 C5
D1 D2 D3 D4 D5

但现在我想要的是我可以点击标签,每个标签都会有自己的ID并调用一个方法来检查是否可以免费使用。
所以我需要让它自动生成粗体部分

vartable[namelabel].Click += new System.EventHandler(**vartable[namelabel]_Click**);

namelabel 自动生成与名称或

Private void lbl11_Click

我能做些什么?

private void button1_Click(object sender, EventArgs e)
    {

        for (int i = 1; i <= 9; i++)
        {
            for (int q = 1; q <= 9; q++)
            {
                string lettle="a";
                if(i==1)
                {
                    lettle="A";
                }
                else if(i==2)
                {
                    lettle="B";
                }
                else if (i == 3)
                {
                    lettle = "C";
                }
                else if (i == 4)
                {
                    lettle = "D";
                }
                else if (i == 5)
                {
                    lettle = "E";
                }
                else if (i == 6)
                {
                    lettle = "F";
                }
                else if (i == 7)
                {
                    lettle = "G";
                }
                else if (i == 8)
                {
                    lettle = "H";
                }
                else if (i == 9)
                {
                    lettle = "I";
                }

                string labeltext = lettle + q;
                int y = (100 + (q * 20));
                int x = (100 + (i * 20));
                string namelabel = "lbl" + i + q;
                var method = namelabel;
                   var vartable = new Dictionary<string, Label>();
                    vartable[namelabel] = new Label();
                    vartable[namelabel].AutoSize = true;
                    vartable[namelabel].Location = new System.Drawing.Point(y, x);
                    vartable[namelabel].Name = namelabel;
                    vartable[namelabel].Size = new System.Drawing.Size(35, 13);
                    vartable[namelabel].TabIndex = 1;
                    vartable[namelabel].Text = labeltext;
                    vartable[namelabel].Cursor = System.Windows.Forms.Cursors.Hand;
                    this.Controls.Add(vartable[namelabel]);
                    vartable[namelabel].Click += new System.EventHandler(**vartable[namelabel]_Click**);



            }

        }
4

1 回答 1

0

您可以使用 Label 的“Tag”属性(从基类 Control 继承)来存储座位号。这允许您对所有 Label 对象使用相同的事件处理程序。一旦事件处理程序被调用,它可以通过检查标签来确定实际点击了哪个标签。

预订/可用信息可以存储在由座位号索引的布尔数组中。

示例事件处理程序:

 private void label_Click(object sender, EventArgs e)
        {
            if (((Label)sender).Tag.Equals("1"))
            {
                MessageBox.Show("Label 1 clicked!");
            }
        }
于 2012-12-27T13:30:37.947 回答