A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© sunrise2 高级黑马   /  2014-7-16 12:31  /  986 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文



     要对七、八个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.         }
复制代码





1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马