【问题标题】:Error: An object reference is required for the non-static field, method or property错误:非静态字段、方法或属性需要对象引用
【发布时间】:2014-11-05 10:41:28
【问题描述】:
if (pattern[x] == 0)
                {
                    Form1.button0.BackColor = Color.Yellow;

                }
                else if (pattern[x] == 1)
                {

                }
                else if (pattern[x] == 2)
                {

                }
                else
                {

                }

我正在尝试设置按钮背景色,但每当我尝试时,它都无法识别 button0 是一个东西:/

【问题讨论】:

  • Form1 更改为this
  • Form1 是类,而不是该类的实例。您需要Form1 的实例才能访问button0
  • Form1 是一个类。您需要使用该类的实例,即 Form1 类型的变量。

标签: c# winforms button


【解决方案1】:

您需要创建一个Form1 的实例,如下所示:

var myForm = new Form1();
if (pattern[x] == 0)
{
    myForm.button0.BackColor = Color.Yellow;
}
else if (pattern[x] == 1)
{
    //...
}
else if (pattern[x] == 2)
{
    //...
}
else
{
    //...
}
myForm.ShowDialog();

注意: 最后的ShowDialog() 实际上会将您的表单显示为对话框。您可以只使用.Show(),但这取决于您希望如何显示表单。不过,这应该可以让您开始!

【讨论】:

    【解决方案2】:

    如果您的Form1 中确实存在button0(它是在您的Form1.desginer.cs 中创建的) 您可以通过以下方式访问它:

    button0.BackColor = Color.Yellow;
    

    【讨论】:

      猜你喜欢
      • 2012-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多