我正在创建一个程序来访问数据库。
引起我麻烦的代码旨在在按下按钮时打开一个新表单。然后,它基于主窗体上的列表框中的所选值获取数据,并且需要将该数据发送到第二个窗体以放置在文本框和标签中。
我的问题是,为了使代码执行而不会引发错误
"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/