我在Form1
上有一些按鈕。我想將他們的FlatStyle
財產設置爲FlatStyle.Popup
。 我搜索,下面寫了一些代碼:如何更改窗口中所有按鈕的屬性?
// List<Control> ButtonsList = new List<Control>();
List<Button> ButtonsList = new List<Button>();
public Form1()
{
InitializeComponent();
this.Icon = Properties.Resources.autorun; //Project->Properties->Resources->
ButtonsList = GetAccessToAllButtons(this).OfType<Button>.ToList(); //*** hot line ***
foreach(Button btn in ButtonList)
{
btn.FlatStyle = FlatStyle.Popup;
}
}
public IEnumerable<Control> GetAccessToAllButtons(Control thisClass)
{
List<Control> ControlsList = new List<Control>();
foreach (Control child in thisClass.Controls)
{
ControlsList.AddRange(GetAccessToAllButtons(child));
}
ControlsList.Add(thisClass);
return ControlsList;
}
但是,當我在我的代碼熱線使用GetAccessToAllButtons()
,VS生成此錯誤:
'System.Linq.Queryable.OfType(Query.Linq.IQueryable)' is a 'method', which is not valid in the given context
什麼是我的錯?我的參考here錯過了()
。這是一個公認的答案!我參考時有不同的情況嗎?或者它只是一個錯字?
你有多少個按鈕?如果它是10或20,你可以創建一個數組來保存對按鈕變量的引用,而不是寫遞歸?對於例如'var buttons = new Button [] {button1,button2,button3}'或者你是否添加按鈕來動態形成? – shahkalpesh
@shahkalpesh我有14個按鈕,並加載它們的形式非動態加載。 – GntS
雖然你已經得到了答案,但我認爲可以將14個變量名添加到按鈕數組中,而不是試圖在運行時查找按鈕。 – shahkalpesh