none
ComboBox的用法! RRS feed

  • 问题

  • 我在窗口中加了一个ComboBox  ,在comboBox中添加了几个下拉值 1,2,3,4,5

    我企图:

    选择2  ,就有两个TextBox生成  ,选择3就有3个TextBox生成……以此类推!

    我在comboBox的selectIndexChanged的事件中写了下面的代码:

      private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                int textBoxNumber = Convert.ToInt32(this.comboBox1.Text);
                for (int i = 0; i < textBoxNumber; i++)
                {
                    TextBox temp = new TextBox();
                    temp.Name = i.ToString();
                    temp.Location = new Point(this.comboBox1 .Location .X+150*(i+1) ,   this.comboBox1 .Location.Y);
                    Controls.Add(temp);
                }
            }

    发现:选择了5之后,可以生成5个textBox,但是继续选择2的话,就不能从5个变回2个了!!

    问题应该是出现在  for  语句前面!!!

    我没有把已经生成的  textbox  删除!!

    各位大侠,

    小弟的代码要怎么修改,才能够自由的选多少就有多少个textbox生成啊!!

    2012年10月13日 6:20

答案

  • 给你一些意见:

    1)以后一次性把问题描述清楚。

    2)不要用“!”,这个符号表示你不高兴的意思;社区志愿者都是尽自己业余时间帮助你的,不是义务,希望不要引起不快。

    3)谢谢配合。

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
               for(int i=0;i<Controls.Count;++i)
               {
                  if(Controls[i] is TextBox)
                  {
                     Controls.RemoveAt(i);
                     --i;
                  }
               }
    int textBoxNumber = Convert.ToInt32(this.comboBox1.Text); for (int i = 0; i < textBoxNumber; i++) { TextBox temp = new TextBox(); temp.Name = i.ToString(); temp.Location = new Point(this.comboBox1 .Location .X+150*(i+1) , this.comboBox1 .Location.Y); Controls.Add(temp); } }

    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年10月13日 12:16
    版主

全部回复