Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 访问外部文件时加载事件结束_C#_Visual Studio_Onload Event - Fatal编程技术网

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,就好像它认为加载事件已经结束一样。