如何更改Windows中所有按钮的属性?

我在Form1上有一些按钮。 我想将他们的FlatStyle属性设置为FlatStyle.Popup 。 我搜索并编写了一些代码如下:

 // List ButtonsList = new List(); List

但是当我在代码的热线中使用GetAccessToAllButtons()时,VS会生成此错误:

‘System.Linq.Queryable.OfType(Query.Linq.IQueryable)’是’方法’,在给定的上下文中无效

我的错是什么?

编辑:我在这里的参考错过了() 。 这是一个公认的答案! 我的参考资料是否有不同的情况? 或者它只是一个错字?

OfType是通用方法,您必须将其用作方法。 只需将该行替换为以下内容:

 ButtonsList = GetAccessToAllButtons(this).OfType 

另外我建议你写下面的方法:

 public List 

并以这种方式使用它:

 var myBtns = GetAllButtons(yourForm); foreach (var btn in myBtns) { btn.FlatStyle = FlatStyle.Popup; } 
 .OfType 

OfType是一种方法,因此您在它的末尾缺少() 。 它应该是:

 .OfType 

你需要像这样调用: OfType

以下链接将帮助您了解OfType方法:

https://msdn.microsoft.com/en-us/library/bb360913(v=vs.110).aspx

更好地使用这种方式:

 foreach (var control in this.Controls) { if (control.GetType()== typeof(Button)) { //do stuff with control in form } }