我在我的C#项目中使用ListView项目,我想向它添加一些数据。我在表单的类中创建了一个方法,但由于某种原因,我无法从该方法访问ListView。我只能从那种形式的某些事件中访问它(即点击按钮)。这是我创建的功能
public static void addToList(string complexity, string processors, string selectedProc)
{
string[] row = { DateTime.Now.ToString("HH:mm:ss:ff"), complexity, processors, selectedProc };
var listViewItem = new ListViewItem(row);
//tasksList.Items.Add(listViewItem);
}
注释行是返回错误的行。此方法位于public partial class Form1 : Form
完整的Form1类代码
public partial class Form1 : Form
{
processors system1;
public Form1()
{
InitializeComponent();
}
private void startButton_Click(object sender, EventArgs e)
{
system1 = new processors(proc1Speed.Text, proc2Speed.Text, proc3Speed.Text, proc4Speed.Text, proc5Speed.Text, possibility.Text);
}
private void millisecond_Tick(object sender, EventArgs e)
{
system1.addTask();
}
public static void addToList(string complexity, string processors, string selectedProc)
{
string[] row = { DateTime.Now.ToString("HH:mm:ss:ff"), complexity, processors, selectedProc };
var listViewItem = new ListViewItem(row);
//tasksList.Items.Add(listViewItem);
}
}
答案 0 :(得分:0)
只需从方法中删除static关键字即可。你为什么一开始就把它放在那里? 静态方法无法访问静态方法所属类创建的对象的实例变量。
答案 1 :(得分:0)
所以我找到了出路。正如您所看到的,我的代码中有millisecond_Tick
方法。它从另一个类system1.addTask();
调用方法,这是我想要将数据添加到ListView的类。所以我使用system1.addTask(this);
将我的申请表传递给该方法。所以该方法看起来像public void addTask(Form1 form)
。在方法体中,我可以使用form.elementname
访问所有表单元素。谢谢大家参与!