最近在開發一套管理軟件中,要對七、八個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 9 void textBox1_Click(object sender, EventArgs e)10 {11 //TODO:定義一個動態組合框12 ComboBox cmb = new ComboBox();13 14 TextBox txtBox = sender as TextBox;15 16 //用組合框來覆蓋文本框17 cmb.Location = txtBox.Location;18 cmb.Size = txtBox.Size;19 20 this.Controls.Add(cmb);21 cmb.Visible = true;22 //置前23 cmb.BringToFront();24 25 //對組合框異步加載26 ThreadPool.QueueUserWorkItem(27 state =>28 this.BeginInvoke(new Action(() =>29 { cmb.Items.AddRange(new object[] {"one", "two", "three"}); }))); 30 31 //添加事件,使用匿名方法32 cmb.SelectedIndexChanged += delegate33 {34 txtBox.Text = cmb.Text;35 //置后36 cmb.SendToBack();37 cmb = null;38 };39 40 }
新聞熱點
疑難解答