【发布时间】:2010-09-22 12:04:53
【问题描述】:
我知道有人问过类似的问题,但这是我的问题。
在 MDI WinForm 中,我想保存每个应用程序用户的每个子窗口位置和状态,这与登录的 Windows 用户不同。我的应用程序有自己的用户;所以我不会使用 my.Settings... 等用户设置。
一种选择是直接读/写数据库,但我不喜欢访问数据库的想法,因为窗口位置如此微不足道。好处是我可以通过用户工作的机器独立存储这些信息,无论她在哪里登录,都会记住她的偏好。
我想遵循的另一个选择是使用 Xml 将该信息存储在用户计算机本地的文件中。结构可能类似于:
<form name="form name">
<Top>120</Top>
<Left>100</Left>
<State>0</State>
</form>
<form name="another form">
<Top>120</Top>
<Left>120</Left>
<State>1</State>
</form>
我很难理解如何做到这一点;也许使用 Linq to Xml?我发现我可以写一些简单的东西
Dim formPos As XElement = _
<User><%= My.Application.connectedUser.id %>
<form1>
<Top>120</Top>
<Left>100</Left>
<State>0</State>
</form1>
<form2>
<Top>120</Top>
<Left>100</Left>
<State>0</State>
</form2>
</User>
但是:
1) 如何动态填充 xml 选项:我想要
<User id="1">
而不是
<User><%= My.Application.connectedUser.id %> 转换为 <User>1
2) 构建完成后如何编写 XElement。我应该使用XmlWriter.Create 吗?很高兴将其传递给 XElement?
3)当Xml文件中已经有一个同名节点时会发生什么,如果它们已经存在,我想覆盖以前的用户设置,但不附加到文件,也不重写整个文件,当然
谢谢。
【问题讨论】:
标签: vb.net linq-to-xml