C# 我能';I don’我不能从类到窗体调用我的方法
我有一个问题无法解决: 我希望我的类C# 我能';I don’我不能从类到窗体调用我的方法,c#,xml,C#,Xml,我有一个问题无法解决: 我希望我的类admin包含以下方法: public void OpretSpejder() { if (!(string.IsNullOrEmpty(Snavn_txt.Text))) if (!(string.IsNullOrEmpty(Senavn_txt.Text))) if (!(string.IsNullOrEmpty(Sa_txt.Text))) if (!(string.IsNu
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”。我不会将表示层类与我的类耦合。您应该将文本传递给方法,而不是直接访问文本框
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
...
通过单击按钮发布代码。您的
OpretSpejder
方法在做什么对我们来说并不重要。您只需能够执行myAdminInstance.OpretSpejder()
private void按钮2\u单击(对象发送者,事件参数e){OpretSpejder();}这是按钮代码您是否在任何地方声明了Scpr\u txt
?@huMptyduMpty这是什么语法?