我想在運行時查找標籤,這是正確的方式嗎?在運行時找到控件的正確方法
Control[] control;
Label label;
control = this.Controls.Find(labelToChange, false);
label = (Label)control[0];
我找不到返回單個控制的方法,所以我不得不來存儲它的集合,然後檢索的第一個。它會一直找到一個單一的項目。
我想在運行時查找標籤,這是正確的方式嗎?在運行時找到控件的正確方法
Control[] control;
Label label;
control = this.Controls.Find(labelToChange, false);
label = (Label)control[0];
我找不到返回單個控制的方法,所以我不得不來存儲它的集合,然後檢索的第一個。它會一直找到一個單一的項目。
這是使用的正確方法。
MSDN documentation並沒有說明它爲什麼會返回一個集合,但是如果你有一個控件封裝了幾個子控件並且多次實例化,那麼你最終會得到一組標籤。
所以:
基本思想:
Label label;
var c = from x in Controls.Find("labelToChange", false)
where x.GetType() == typeof(Label)
select x;
label = (Label)c.FirstOrDefault();
謝謝,但我從未使用過Linq – TheGateKeeper 2012-03-02 13:15:33
ATLEAST他們提供了一個簡單的方法來自動遍歷THROU所有子控件。 Asp.net沒有這個。 – TheGateKeeper 2012-03-02 13:15:21