c# - 错误消息 “An object reference is required for the non-static field, method or property.”

标签 c# forms compiler-errors static

我正在创建一个程序来访问数据库。

引起我麻烦的代码旨在在按下按钮时打开一个新表单。然后,它基于主窗体上的列表框中的所选值获取数据,并且需要将该数据发送到第二个窗体以放置在文本框和标签中。

我的问题是,为了使代码执行而不会引发错误

"An object reference is required for the non-static field, method or property..."



我必须使辅助形式的方法静态化;但是,这阻止了我访问辅助表单上的控件。

主要表单代码段:
 private void MemView_Click(object sender, EventArgs e)
    {
        string selected = lstMember.SelectedItems[0].Text;
        //MessageBox.Show(selected);
        string[] data = P.selectMem(selected);
        MessageBox.Show(data[0]);

        MemForm mem = new MemForm(); //How to open a designed form

        mem.Show();  //Displays the addmem form

        MemForm.getData(data);

    }

辅助表格代码段:
public void getData(string[] Data)
    {
        int index = 0;
        bool loop = false;
        string text;

        while (loop == true)
        {
            if (index < 10)
            { text = "tb0" + index.ToString(); }
            else
            { text = "tb" + index.ToString(); }

            index = index + 1;
        }


    }

我的辅助代码段旨在使用循环将所有数据填充到文本框中,而无需我手动写出每个tb00.Text = data []等。
由于需要静态方法,我最有可能无法访问C#中的FindControls()方法。
Main Form中使用的P类执行SQL代码,并且可以正常工作。

我已经尝试提供足够的信息来给出答案,但是如果需要更多信息,请在评论中提出,我将尝试并提供更多信息。 :)

最佳答案

如果getData()MemForm中的非静态方法,则需要MemForm实例才能使用它。您有一个:MemForm mem = new MemForm();使用mem对象,它是MemForm的实例。

mem.getData(data);

关于c# - 错误消息 “An object reference is required for the non-static field, method or property.”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42937954/

相关文章:

c# - 委托(delegate)和事件之间有什么区别?

c# - 什么格式 {0 :x} mean?

c# - 如何更正表达式的替换类型?

php - 如何使用数组在 MySQL 中插入两个以上的查询

python-3.x - 通过 enctype ="multipart/form-data"上传多个文件,第一个上传的文件大小始终为0,其余都可以

python - 运行前查找Python编译/运行时错误

Delphi 错误 E1026 找不到文件 : "myprojectname.tlb"

c# - 部分 View 忽略数据集且不显示

PHP 提交输入 Foreach() ID

boost - 由于 boost::filesystem而导致的编译错误