C#如何動(dòng)態(tài)創(chuàng)建Label,及動(dòng)態(tài)label事件
C#如何動(dòng)態(tài)創(chuàng)建Label,及動(dòng)態(tài)label事件
根據(jù)上文動(dòng)態(tài)創(chuàng)建的label文章中做了2點(diǎn)的改動(dòng),也是為了方便測試。
第一點(diǎn):switch中的生成我們的label事件
我把他封裝起來了以便我新加了一個(gè)動(dòng)態(tài)label2的調(diào)用。
具體的改動(dòng)就是為每個(gè)labels都去寫了一個(gè)事件語句。
看似感覺不會(huì)動(dòng)態(tài)的生成我們對(duì)應(yīng)的事件,實(shí)際上是可以的。
private void switch_new_label(Label[] labels, int index, int i) { switch (index) { case 0: labels[i].Text = "11"; labels[i].Name = "11"; labels[i].Location = new Point(13 + 130 * i, 15); labels[i].Click += new EventHandler(btn_Click); //將按鈕的方法綁定到按鈕的單擊事件中btn.Click是按鈕的單擊事件 break; case 1: labels[i].Text = "12"; labels[i].Name = "12"; labels[i].Location = new Point(13 + 130 * i, 15); labels[i].Click += new EventHandler(btn_Click); break; case 2: labels[i].Text = "13"; labels[i].Name = "13"; labels[i].Location = new Point(13 + 130 * i, 15); labels[i].Click += new EventHandler(btn_Click); break; case 3: labels[i].Text = "14"; labels[i].Name = "14"; labels[i].Location = new Point(13 + 130 * i, 15); labels[i].Click += new EventHandler(btn_Click); break; case 4: labels[i].Text = "15"; labels[i].Name = "15"; labels[i].Location = new Point(13 + 130 * i, 15); labels[i].Click += new EventHandler(btn_Click); break; default: break; } }
接著,我們把事件實(shí)現(xiàn)一下
private void btn_Click(object sender, EventArgs e) { Label label = (Label)sender; //將觸發(fā)此事件的對(duì)象轉(zhuǎn)換為該Button對(duì)象 MessageBox.Show(string.Format("My i value is {0}!", label.Name)); //Console.WriteLine("My i value is {0}!", label.Name); }
運(yùn)行一下,這里是單擊對(duì)應(yīng)的按鈕都會(huì)提示對(duì)應(yīng)的label.Name的名字的。
這里,我們能看到我們的panel1模塊是空的,現(xiàn)在也為他填上動(dòng)態(tài)生成的label并且也實(shí)現(xiàn)他的動(dòng)態(tài)label.click事件。
效果大概是這樣
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
C#中string和StingBuilder內(nèi)存中的區(qū)別實(shí)例分析
這篇文章主要介紹了C#中string和StingBuilder內(nèi)存中的區(qū)別,以實(shí)例形式演示了二者在內(nèi)存中的不同之處,需要的朋友可以參考下2014-09-09C#將布爾類型轉(zhuǎn)換成字節(jié)數(shù)組的方法
這篇文章主要介紹了C#將布爾類型轉(zhuǎn)換成字節(jié)數(shù)組的方法,涉及C#中字符串函數(shù)的使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04利用Aspose.Word控件實(shí)現(xiàn)Word文檔的操作
偶然一次機(jī)會(huì),一個(gè)項(xiàng)目的報(bào)表功能指定需要導(dǎo)出為Word文檔,因此尋找了很多篇文章,不過多數(shù)介紹的比較簡單一點(diǎn),于是也參考了官方的幫助介紹,終于滿足了客戶的需求。下面我由淺入深來介紹這個(gè)控件在實(shí)際業(yè)務(wù)中的使用過程吧2013-05-05C#中WebBrowser.DocumentCompleted事件多次調(diào)用問題解決方法
這篇文章主要介紹了C#中WebBrowser.DocumentCompleted事件多次調(diào)用問題解決方法,本文講解了3種情況和各自情況的解決方法,需要的朋友可以參考下2015-01-01C#切換鼠標(biāo)左右鍵習(xí)慣無需控制面板中修改
本人一直喜歡左手使用鼠標(biāo),偶爾同事會(huì)臨時(shí)操作一下,因?yàn)樗牧?xí)慣是右手,還得在控制面板里進(jìn)行更改,太麻煩了所以就編寫一個(gè)控制臺(tái)程序,雙擊一下即可切換左右鍵,熱愛懶人的你可不要錯(cuò)過了哈2013-02-02在winform下實(shí)現(xiàn)左右布局多窗口界面的方法
在web頁面上我們可以通過frameset,iframe嵌套框架很容易實(shí)現(xiàn)各種導(dǎo)航+內(nèi)容的布局界面,而在winform、WPF中實(shí)現(xiàn)其實(shí)也很容易,通過本文給大家介紹在winform下實(shí)現(xiàn)左右布局多窗口界面的方法,本文介紹的非常詳細(xì),對(duì)winform布局相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-02-02