限制winform中的控件数量

时间:2014-06-10 12:56:26

标签: c# winforms groupbox

我的表单中有一个按钮,每按一下按钮就会添加groupBox。但我希望winform只包含8个组合框。当groupBox的数量达到8时,它将在groupBox之前自动执行Visible = false all 8并再次添加一个名为(groupBox9)的groupBox。我该怎么办?

private void butonYeni_Click(object sender, EventArgs e)
{
        //creating Font
        Font font = new Font("Microsoft Sans Serif", 10.0f, FontStyle.Bold);
        Font font2 = new Font("Microsoft Sans Serif", 9.0f, FontStyle.Bold);

        int sayGB = 0;

        foreach (Control c in this.Controls)
        {
            if (c.GetType() == typeof(GroupBox))
            {
                sayGB++;
            }



            for (int i = sayGB; i < 1000; i++)
            {
                //creating groupbox
                GroupBox Group = new GroupBox();
                Group.Width = 767;
                Group.Height = 179;
                Group.Text = "Soru & Cevap";
                Group.Font = font;
                Group.ForeColor = Color.Maroon;
                Group.Location = new Point(200,66);
                //creating label
                Label Soru = new Label();
                Soru.Text = "Soru: ";
                Soru.Font = font2;
                Soru.ForeColor = Color.Maroon;
                Soru.Location = new Point(6,33);
                Soru.Width = 53;
                Soru.Height = 13;
                //creating textbox
                TextBox soruText = new TextBox();
                soruText.Width = 685;
                soruText.Height = 20;
                soruText.Font = font2;
                soruText.ForeColor = Color.Black;
                soruText.Multiline = true;
                soruText.Location = new Point(70,31);
                //creating label
                Label Cevap = new Label();
                Cevap.Text = "Cevap:";
                Cevap.Font = font2;
                Cevap.ForeColor = Color.Maroon;
                Cevap.Location = new Point(6, 92);
                Cevap.Width = 53;
                Cevap.Height = 25;
                //creating textbox
                TextBox cevapText = new TextBox();
                cevapText.Width = 685;
                cevapText.Height = 69;
                cevapText.Font = font2;
                cevapText.ForeColor = Color.Black;
                cevapText.Multiline = true;
                cevapText.Location = new Point(70,67);
                //creating button
                Button btn = new Button();
                btn.Width = 75;
                btn.Height = 25;
                btn.Text = "Kaydet";
                btn.BackColor = Color.Maroon;
                btn.Font = font2;
                btn.ForeColor = Color.White;
                btn.Location = new Point(682,148);
                //kontrolleri ekleme
                Group.Controls.Add(btn);
                Group.Controls.Add(Soru);
                Group.Controls.Add(soruText);
                Group.Controls.Add(Cevap);
                Group.Controls.Add(cevapText);
                this.Controls.Add(Group);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

定义一个整数类变量,并在每次单击该按钮时增加它。增加后,检查它是否大于8.如果是,请将您的东西设置为Visible = false。

小样:

public class MyClass
{
      private int groupboxCounter = 0;
      public MyClass()
      {
      }

      private void btn_click(...)
      {
           // add a new groupbox here
           groupboxCounter++;
           if (groupboxCounter > 8)
           {
                //make stuff invisible here
           } 
      }
}