C# 访问外部文件时加载事件结束
创建新表单时,我有以下代码用于新表单的加载事件C# 访问外部文件时加载事件结束,c#,visual-studio,onload-event,C#,Visual Studio,Onload Event,创建新表单时,我有以下代码用于新表单的加载事件 private void Card_Load(object sender, EventArgs e) { name = variables.filename; //File name this.Text = name; //Form name XmlDocument xml = new XmlDocument(); xml.Load(name); Xm
private void Card_Load(object sender, EventArgs e)
{
name = variables.filename; //File name
this.Text = name; //Form name
XmlDocument xml = new XmlDocument();
xml.Load(name);
XmlNodeList xnList = xml.SelectNodes("/Card");
foreach (XmlNode xn in xnList)
{
txt1.Text = xn["option1"].InnerText;
txt2.Text = xn["option2"].InnerText;
txt3.Text = xn["option3"].InnerText;
txt4.Text = xn["option4"].InnerText;
txt5.Text = xn["option5"].InnerText;
}
}
我的问题是,当它进入xml.Load
时,它会离开Load事件,返回到创建表单,这意味着其余的代码不会被使用。我假设其他类型的文件处理也是如此,因为使用file.ReadLines
时也会发生同样的情况。
这是我用来创建表单的代码
Card frm1 = new Card();
frm1.Show();
这就是我正在使用的xml文件
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Card>
<option1>123</option1>
<option2>456</option2>
<option3>654</option3>
<option4>321</option4>
<option5>246</option5>
</Card>
123
456
654
321
246
例外情况如何?你没有一个吗?你在什么地方抓到它了吗?它没有任何例外。我不知道如何正确地使用catch语句,所以我通常不会。你绝对确定没有例外吗?(请使用try-catch,不要依赖程序崩溃)。当抛出异常时,事件处理程序不一定会影响程序的其余部分。这不是针对个人的,但是经常发生的情况是,一个可能的原因被评论,被提问者否认,后来被发现是问题所在,所以请再次检查这个问题。请详细说明“它离开加载事件并返回创建表单”。非常明确地解释你到底看到了哪些行为,以及你如何确定这种说法是原因。据我们所知,您正在加载一个带有空“卡片”列表的XML,因此foreach()
从未实际枚举,您的文本框仍然为空,并且您认为文本框为空意味着您的代码没有执行。放置断点并单步执行代码。无论如何,这与文件无关,这就是抽象的美妙之处。文件不会突然改变C#或.NET的规则。单步执行代码表明它到达了xml.load is on行,然后再执行一步返回到另一个表单。它没有到达forloop,就好像它认为加载事件已经结束一样。