【发布时间】:2013-03-13 15:08:25
【问题描述】:
我可能有一个简单的问题要问你,但我坚持这个。
所以,我有一个应用程序,它有多个用户控件,从一个类继承。我可以将它们拖到面板上,然后调整它们的大小。我有保存和打开用户控件位置/大小保存/从 XML 文件加载的功能。最近我用一个特性改进了它,它可以让你在代码中添加额外的东西,然后用其余的主要参数保存它。
这是一个例子:
基本上它会检测是否添加了任何其他参数并将它们保存在<Parameters> 标签下。
这是我添加了一些东西的 userControl 代码示例:
保存很顺利,但我在加载部分卡住了。我首先尝试通过将任何发现的参数写入richTextBox 来测试它,看看它是否读取任何数据。 我想,它应该首先检测 userControls,然后在每个 userControl 中查找参数。
我收到此错误:
如下所示,程序读取 XML,但在需要填充richTextBox 的位置停止。它不会发生,因为在应该包含两个参数的列表中,只有一个参数,一种混合。
我很困惑。有什么建议吗?
培训中的开发者
【问题讨论】:
-
使用调试器查看哪个对象为空;它是以下之一:richTextBox1、pm、pm.Name 或 pm.Value。
-
看here也许对你有帮助。
-
您可以发布实际代码而不是屏幕截图.. 当您进入代码时,pm 的价值是什么?您需要到达
InnerText,所以也许 pm.Name.ToString() 应该更改为pm.Name.InnerText.ToString() -
我已经修复了,是的,内部文本,我忘了添加:P
-
我想发布一个答案,但它被关闭了。将
XmlNodeList pmList = doc.SelectNodes("/root/UC/Parameters");更改为XmlNodeList pmList = xn.SelectNodes("Parameters/*");并将pm.Name + " - " + pm.Value更改为pm.Name + " - " + pm.InnerText。
标签: c# xml user-controls xmlnode