用代碼生成的lable,如何給她注冊事件?比如:
Label lable = new Label(); //新建lable
for (int i =1; i < 100; i++)
{
lable.Name = "lable" + i; //給lable 命名
lable.AutoSize = false;
lable.Location = new Point(2, 66);
lable.Size = new Size(298, 64);
lable.TextAlign = ContentAlignment.MiddleCenter;
lable.Text = "haole";
lable.Font = new Font("宋體", 15);
lable.BorderStyle = BorderStyle.Fixed3D;
this.Controls.Add(lable); //表單創建lable
this.button1.Location = new Point(lable.Location .X, lable.Location.Y + 67);
}
我想給新建的lable i注冊click事件,我該怎么注冊?
uj5u.com熱心網友回復:
lable.OnClick += 按兩次Tabuj5u.com熱心網友回復:
我剛試了一下,注冊了事件,但是我想改變這個lable的顏色的時候,發現沒有這個控制元件啊uj5u.com熱心網友回復:
https://blog.csdn.net/xianfajushi/article/details/83867006https://blog.csdn.net/xianfajushi/article/details/53067028
uj5u.com熱心網友回復:
事件里 sender就是源控制元件
(sender as Label)可以獲取到
uj5u.com熱心網友回復:
sender轉換成labeluj5u.com熱心網友回復:
是不是需要把Label lable = new Label();放進for里面uj5u.com熱心網友回復:
用代碼給他加事件啊。。。。就是 xxx.Click+=你自己定義的事件
uj5u.com熱心網友回復:
就是你再拖拽的時候自動增加的代碼用手敲出來uj5u.com熱心網友回復:
https://blog.csdn.net/wsp2359482671/article/details/78679110uj5u.com熱心網友回復:
代碼有問題首先
Label label= new Label();
for (int i =1; i < 100; i++)
{
label.xxxx
}
你這種方式的話.最終頁面肯定只有一個(最后一個)label顯示,其他都覆寫掉了吧?
因為自始至終也只有一個label..
其次給label事件 可以采用label.click+= 2次tab生成一個事件
或者
label.click+=(sender,event)=>{
//你的代碼
};
當然 你點點擊某個label 就執行當label的事件 那么你需要把sender轉換成label
label.click+=(sender,event)=>{
var lb=sender as Label ;
//lb里的屬性 就是你for回圈賦值的屬性...
};
uj5u.com熱心網友回復:
TO:封愛,還有一點,我用代碼動態生成的多個lable,他的name屬性是多少?我怎么像呼叫lable1,lable2那樣呼叫生成的lable?幫忙解決,多給積分!uj5u.com熱心網友回復:
name就是一個控制元件的唯一標識 你給不重復的即可... 無實際意義一般都用固定名+數字.. 因為可以回圈findcontrol
uj5u.com熱心網友回復:
代碼生成的lablel基本上是不能用他的name呼叫,只能把他存放到一個list<label>里面,再像listlabel[1].進行呼叫
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/106048.html
標籤:C#
上一篇:C#課題
下一篇:關于static的使用
