C#為控制元件動態新增事件繫結的時機
阿新 • • 發佈:2019-01-01
今天遇到個小問題,要為幾十個文字框新增相同的失去焦點事件,常規的辦法是在VS的事件管理器裡面新增,但那樣太繁瑣了,幾十個文字框,要加幾十遍,這行不通。
於是想到動態繫結,第一次嘗試如下:
foreach(TextBox tbx in tbxs){
tbx.Leave += new EventHandler(tbxN_Leave);
}
public void tbxN_Leave(object sender, EventArgs e)
{
MessageBox.Show("Leave");
}
但是沒有效果。怎麼回事呢?網上都是這麼寫的啊...
再查,是不是繫結語句的位置問題?仔細看了看,我把繫結的語句寫在了FormMain_Load方法中,於是換個思路,把繫結語句寫到構造方法中:
public FormMain()
{
InitializeComponent();
//...
//繫結隨時儲存倒計時資訊的事件
foreach (TextBox tbx in tbxs)
{
tbx.Leave += new EventHandler(tbxN_Leave);
}
}
繫結成功,問題解決!