从 C# 中表单的 class 的另一种方法获取对表单元素的访问
Get access to form element from another method of form's class in C#
我在我的 C# 项目中使用 ListView 项,我想向其中添加一些数据。我在表单的 class 中创建了一个方法,但由于某种原因我无法从该方法访问 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);
}
注释行是 returns 错误的行。此方法位于public partial class Form1 : Form
完整 Form1 class 代码
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);
}
}
只需从方法中删除 static 关键字。你为什么把它放在那里?
静态方法不能访问静态方法所属的 class 创建的对象的实例变量。
所以我找到了出路。如您所见,我的代码中有 millisecond_Tick
方法。它从另一个 class system1.addTask();
调用方法,这就是我想从中向我的 ListView 添加数据的 class。所以我使用 system1.addTask(this);
将我的申请表传递给该方法。所以该方法看起来像 public void addTask(Form1 form)
。在方法的主体中,我可以使用 form.elementname
访问所有表单元素。感谢大家的参与!
我在我的 C# 项目中使用 ListView 项,我想向其中添加一些数据。我在表单的 class 中创建了一个方法,但由于某种原因我无法从该方法访问 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);
}
注释行是 returns 错误的行。此方法位于public partial class Form1 : Form
完整 Form1 class 代码
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);
}
}
只需从方法中删除 static 关键字。你为什么把它放在那里? 静态方法不能访问静态方法所属的 class 创建的对象的实例变量。
所以我找到了出路。如您所见,我的代码中有 millisecond_Tick
方法。它从另一个 class system1.addTask();
调用方法,这就是我想从中向我的 ListView 添加数据的 class。所以我使用 system1.addTask(this);
将我的申请表传递给该方法。所以该方法看起来像 public void addTask(Form1 form)
。在方法的主体中,我可以使用 form.elementname
访问所有表单元素。感谢大家的参与!