回答
您可以使用表單的Controls
屬性(或表單上的某個容器控件)。隨着LINQ可以選擇按鈕,然後找到第一個按鈕與所需的名稱:
var button1 = Controls.OfType<Button>().FirstOrDefault(b => b.Name == "button1");
或者,如果你要搜索的孩子遞歸
var button1 = Controls.Find("button1", true)
.OfType<Button>()
.FirstOrDefault();
控制沒有LINQ可以使用的ControlCollection的方法Find(string key, bool searchAllChildren):
Control[] controls = Controls.Find("button1", true);
if (controls.Length > 0)
{
Button button1 = controls[0] as Button;
}
這看起來很整齊。但是,當我嘗試將它用作按鈕時,我得到一個NullReferenceException。 (button1 var)。我應該檢查它是否是一個按鈕,即使它被稱爲類型
如果沒有帶搜索名稱的按鈕,則FirstOrDefault將返回默認值。 Button的默認值爲空。所以是的,你應該檢查null來驗證按鈕是否被找到。另外請確保您使用的控件集合已添加按鈕到 –
ty。公認!!! – DaveL
是:
Control myControl = Controls.Find("textBox1");
現在,提防你必須做正確的鑄造母雞發現,因爲查找返回控制。
所有這些都生成後,我想編輯其中一個沒有 正在重新生成它們,所以我想知道如果我可以通過其名稱獲得組件 ?
var myButton = Controls.Find("buttonName", true).FirstOrDefault(); //Gets control by name
if(myButton != null)
{
if (myButton.GetType() == typeof(Button)) //Check if selected control is of type Button
{
//Edit button here...
}
else
{
//Control isn't a button
}
}
else
{
//Control not found.
}
確保你添加引用:LINQ。
您確定'ControlCollection'中存在'Find(string)'方法嗎? –
@SergeyBerezovskiy編輯答案,缺少搜索所有孩子的參數。 – Max
不僅參數 - 現在它有錯誤的返回類型 - Find(string,bool)'返回控件數組 –
Button btn1 = (Button)(Controls.Find("btnName"));
這將獲得所需的按鈕,將保存按鈕屬性到一個新的按鈕BTN1
- 1. 編輯按鈕表
- 2. 按行名稱連續編輯值
- 3. 後退按鈕「和」編輯按鈕
- 4. UITableView:重命名編輯按鈕(UIBarButtonSystemItemEdit)
- 5. 如何以編程方式生成按鈕名稱按鈕
- 6. iPhone - UITableView:更改默認編輯按鈕名稱
- 7. Excel編輯命令按鈕名稱不變
- 8. Asp.net gridview編輯沒有編輯按鈕
- 9. 自定義UITableView編輯按鈕
- 10. 自定義UINavigationController的編輯按鈕?
- 11. 在UITableview中自定義編輯按鈕
- 12. Bootstrap wysiwyg編輯器按鈕重定位
- 13. 「按」編輯按鈕在gridview通過c#
- 14. 通過JQuery指定按鈕的名稱
- 15. 未定義的名稱按鈕Tkinter的
- 16. UITableView編輯/完成按鈕
- 17. 編輯瀏覽按鈕
- 18. 編輯wordpress導航按鈕
- 19. 編輯gvim鼠標按鈕
- 20. iOS編輯按鈕執行
- 21. 用按鈕編輯UIDatePicker?
- 22. 編輯模式按鈕
- 23. PHP +用戶編輯按鈕
- 24. 編輯按鈕設計
- 25. QT編輯智能按鈕
- 26. 編輯按鈕在HTML,CSS
- 27. Gridview顯示編輯按鈕
- 28. 懸停時編輯按鈕
- 29. 撰寫編輯按鈕
- 30. 「編輯」按鈕,象形
你有什麼用? WinForms,WPF,WEB? –
您是否嘗試在代碼編輯器中鍵入按鈕名稱? –
@SergeyBerezovskiy按鈕在不同的範圍 – DaveL