【问题标题】:C# object reference is required for the non-static field, method or property 'Assignment_1.frmMain.setListIndex(int)' [duplicate]非静态字段、方法或属性“Assignment_1.frmMain.setListIndex(int)”需要 C# 对象引用 [重复]
【发布时间】:2015-04-24 08:13:44
【问题描述】:

我正在尝试以另一种形式更改列表框的 SelectedIndex,但遇到了上述错误。在其他帖子中查看此错误的原因似乎是由于目标表单中有一个静态方法,但我无法在我的代码中找出发生这种情况的位置。

主要形式:

using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Assignment_1
{
    public partial class frmMain : Form
    {

        public frmMain()
        {
            InitializeComponent();
        }

            public void setListIndex(int index)
        {
            lstEvents.SelectedIndex = index;
        }
    }
}

第二种形式

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Assignment_1
{
    public partial class frmSearch : Form
    {
        private int selectedEvent;

        public frmSearch(int index)
        {
            InitializeComponent();
            selectedEvent = index;
        }

        private void btnSearch_Click(object sender, EventArgs e)
        {
            frmMain.setListIndex(selectedEvent); //error here
        }
    }
}

有什么想法吗?如果有另一种方法可以在另一个表单中更改所选项目?

【问题讨论】:

    标签: c# winforms compiler-errors


    【解决方案1】:

    当您致电frmMain.setListIndex(selectedEvent); 您正在尝试调用类(静态)方法;但是,该方法不是静态的。静态方法是类的一部分(如static void Main(String[]))。非静态方法,或缺少修饰符 static 的方法,需要由 new 构建的对象引用或检索方法。

    因此,我们可以看到您有两个选择:将方法设为静态,或创建一个对象。对我来说,既然我们在谈论表单,那么创建对象是最好的解决方案。

    btnSearch_Click 方法内部:

    {
        frmMain f = new frmMain();
        f.setListIndex(selectedEvent);
    }
    

    【讨论】:

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