我试图从另一个包含另一个类的文件(nodes.cs)中更改我的主窗体中的列表框。我在我的主窗体中创建了一个类,它为我改变了文本框,所以我需要做的就是将字符串传递给它。不幸的是,除非让String-changing-class静态,否则我不能访问其他类的函数。如果我使它静态,我不能更改列表框,但不会出现错误: 非静态字段,方法或属性需要对象引用...试图如何从其他类调用函数而不使其变为静态
我知道这意味着我需要创建该对象或使其非静态。我发现整个班级的事情相当混乱。我必须启动一个全新的表单对象来访问它?无论如何。
我如何去从另一个类访问列表框,包含在另一个文件?这两个类位于相同的命名空间中。
有一个在加入什么,我没有真正的点,这是一个巨大的代码量,并抹去我的一切,我已经尝试过...
MAIN.CS
namespace neuralnetwork
{
public partial class mainform : Form
{
yada yada
public static void changetext(string text)
{
listbox1.items.add(text);
}
}
}
Secondary.cs
namespace neuralnetwork
{
class lolercopter
{
public static void dolol()
{
//here is where I want to change the mainforms textbox.
mainform.changetext(s);
}
}
}
这实质上就是我所拥有的。我一直在读超过这个一小时。
请从你所拥有的添加一些代码示例现在 – curtisk 2010-01-12 15:04:18
您需要在MainForm中的实例的引用,放在您做了什么样: 的MainForm F =新的MainForm(); 这是你可以使用它的实例成员,如你的方法。 f.changetext(“something”);等等...... – 2010-01-12 15:13:42
对,理查德。我明白这一点,我写了这个。但是,如果我在辅助类中执行mainform f = new mainform(),不仅不能访问列表框(Visual Studio不会列出它作为选项),但是这不会创建一个完整的新表单吗?没有参考? – cam 2010-01-12 15:18:38