黑马程序员技术交流社区

标题: 如何动态在文本框中添加组合框功能 [打印本页]

作者: sunrise2    时间: 2014-7-16 12:31
标题: 如何动态在文本框中添加组合框功能


     要对七、八个Textbox动态添加可以选择的组合框,点击文本框中先显示组合框Combox并且在组合框中异步加载数据,选择Combox数据,并自动将数据添加Textbox.text中,如果按照常规写法,可能需要更多的代码;
  1. void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             //对三个文本框添加事件
  4.             textBox1.Click += new EventHandler(textBox1_Click);
  5.             textBox2.Click += new EventHandler(textBox1_Click);
  6.             textBox3.Click += new EventHandler(textBox1_Click);
  7.         }

  8.         void textBox1_Click(object sender, EventArgs e)
  9.         {
  10.             //TODO:定义一个动态组合框
  11.             ComboBox cmb = new ComboBox();

  12.             TextBox txtBox = sender as TextBox;
  13.          
  14.             //用组合框来覆盖文本框
  15.             cmb.Location = txtBox.Location;
  16.             cmb.Size = txtBox.Size;

  17.             this.Controls.Add(cmb);
  18.             cmb.Visible = true;
  19.             //置前
  20.             cmb.BringToFront();

  21.             //对组合框异步加载
  22.            ThreadPool.QueueUserWorkItem(
  23.                state =>
  24.                    this.BeginInvoke(new Action(() =>
  25.                    { cmb.Items.AddRange(new object[] {"one", "two", "three"}); })));   

  26.             //添加事件,使用匿名方法
  27.             cmb.SelectedIndexChanged += delegate
  28.             {
  29.                 txtBox.Text = cmb.Text;
  30.                 //置后
  31.                 cmb.SendToBack();
  32.                 cmb = null;
  33.             };

  34.         }
复制代码






作者: 许庭洲    时间: 2014-7-16 15:38
值得学习ing!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2