我有一个问题我无法解决:
我希望我的班级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");
}
}
我希望该方法在另一种形式的按钮单击中执行。但它无法识别我的文本框..这是唯一的问题。
对于每个实例,它只是说:当前上下文中不存在名称“Scpr_txt”。
答案 0 :(得分:2)
我不会将表示层类与我的类结合起来。您不应直接访问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)))
{
答案 1 :(得分:1)
有两种方法可以做到这一点:
第一种方法是向OpretSpejder
函数添加参数。
第二种方法是在Form2
中公开Form1
,如下所示:
Form2 f2 = new Form2();
然后你可以使用:
f2.textbox1.text
f2.textbox2.text
...
答案 2 :(得分:0)
它试图告诉您它无法识别TextBox的存在位置。您可以将对文本框的引用传递给方法。