我試圖從另一個包含另一個類的文件(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