Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 错误CS0120:&x9;非静态字段、方法或属性需要对象引用';控件';_C#_Visual Studio_Winforms - Fatal编程技术网

C# 错误CS0120:&x9;非静态字段、方法或属性需要对象引用';控件';

C# 错误CS0120:&x9;非静态字段、方法或属性需要对象引用';控件';,c#,visual-studio,winforms,C#,Visual Studio,Winforms,我遇到了这个错误。我试图创建一个控件实例,但没有成功。有人能帮我吗 错误CS0120非静态字段、方法或属性“Control.Controls”需要对象引用 公共部分类表单1:表单 { 公共表格1() { 初始化组件(); } 静态void Main(字符串[]参数) { foreach(Form1.Controls.OfType()中的var按钮) { } } } 首先,在Form1 您还需要更改这一行 var form1 = new From1(); foreach (var button

我遇到了这个错误。我试图创建一个控件实例,但没有成功。有人能帮我吗

错误CS0120非静态字段、方法或属性“Control.Controls”需要对象引用

公共部分类表单1:表单
{
公共表格1()
{
初始化组件();
}
静态void Main(字符串[]参数)
{
foreach(Form1.Controls.OfType()中的var按钮)
{
}
}
}

首先,在
Form1

您还需要更改这一行

var form1 = new From1();

foreach (var button in form1.Controls.OfType<Button>())

无论如何,以上所有代码都应该是静态方法

您实际上在尝试做什么?您将控制台应用程序中使用的代码与WinForms中使用的代码混合在一起。您可以在
Program.cs
中找到
static void Main()
,它很少用于与UI相关的操作。你应该描述一下你在这里真正想要实现的目标。如果您试图获取/设置作为当前表单子级的所有按钮的属性,那么
OnLoad
方法重写(或类方法委托)是一个更好的选择。我试图在每次窗口表单应用程序发生更改时自动调整按钮文本的大小。按钮文本自动调整大小意味着什么?更改字体大小(使用较大/较小的字体大小)?窗口形式有什么变化?何时调整窗体的大小?你试过固定按钮吗?它不会改变字体大小,但会调整按钮大小,无需进一步编码。或者将按钮添加到TableLayoutPanel的单元格中,设置按钮的停靠属性(例如,
[Button].Dock=Fill
)。我的意思是,当用户单击顶部的矩形按钮以最大化或恢复窗口大小时,我确实希望框中的文本根据窗口更改大小。单独使用TableLayoutPanel只会更改按钮,但不会更改其中的文本…很好,错误消失了,但代码没有按照我想要的方式工作。我试图使按钮的文本自动调整大小,每次有一个在窗口窗体应用程序的变化。这是我第一次用c语言编写winform应用程序,所以有些事情我不明白,哈哈。他没有回答你的问题吗?
var form1 = new From1();

foreach (var button in form1.Controls.OfType<Button>())
foreach (var button in this.Controls.OfType<Button>())