我无法从类到表单调用我的方法

我有一个问题我无法解决:

我希望我的class级admin包含此方法:

 public void OpretSpejder() { if (!(string.IsNullOrEmpty(Snavn_txt.Text))) if (!(string.IsNullOrEmpty(Senavn_txt.Text))) if (!(string.IsNullOrEmpty(Sa_txt.Text))) if (!(string.IsNullOrEmpty(Scpr_txt.Text))) { XmlDocument doc = new XmlDocument(); doc.Load(@"Spejder.xml"); var nodeCount = 0; using (var reader = XmlReader.Create(@"Spejder.xml")) { while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && reader.Name == "Spejder") { nodeCount++; } } } nodeCount++; XmlElement Spejder = doc.CreateElement("Spejder"); Spejder.SetAttribute("ID", nodeCount.ToString()); XmlNode Navn = doc.CreateElement("Navn"); Navn.InnerText = Snavn_txt.Text; Spejder.AppendChild(Navn); XmlNode Efternavn = doc.CreateElement("Efternavn"); Efternavn.InnerText = Senavn_txt.Text; Spejder.AppendChild(Efternavn); XmlNode Alder = doc.CreateElement("Alder"); Alder.InnerText = Sa_txt.Text; Spejder.AppendChild(Alder); XmlNode Cpr = doc.CreateElement("Cpr"); Cpr.InnerText = Scpr_txt.Text; Spejder.AppendChild(Cpr); doc.DocumentElement.AppendChild(Spejder); doc.Save(@"Spejder.xml"); Snavn_txt.Text = String.Empty; Senavn_txt.Text = String.Empty; Sa_txt.Text = String.Empty; Scpr_txt.Text = String.Empty; MessageBox.Show("Spejder Oprettet"); } } 

我希望该方法在另一种forms的按钮单击中执行。 但它无法识别我的文本框..这是唯一的问题。

对于每个实例,它只是说:当前上下文中不存在名称“Scpr_txt”。

我不会将表示层类与我的类耦合。 您应该将文本传递给方法,而不是直接访问TextBox。

 public void OpretSpejder(string Snavn_txt, string Sa_txt, string Scpr_txt ) { if (!(string.IsNullOrEmpty(Senavn_txt))) if (!(string.IsNullOrEmpty(Sa_txt))) if (!(string.IsNullOrEmpty(Scpr_txt))) { 

有两种方法可以做到这一点:

第一种方法是为OpretSpejder函数添加参数。

第二种方法是在Form1创建一个公共Form2 ,如下所示:

 Form2 f2 = new Form2(); 

然后你可以使用:

 f2.textbox1.text f2.textbox2.text ... 

它试图告诉你它无法识别TextBox的存在位置。 您可以将对文本框的引用传递给方法。