我想在Windows窗体中单击按钮时在资源文件中添加数据 我有一个带有3个文本框的窗体 -
text_box1:姓名
text_box2:值
text_box3:评论
以及一个名为Save
的按钮。
我能够在资源文件中保存数据,但不能以我想要的方式保存。它保存在下一行的每个值中,但我希望Name位于Name列下,value应该在列下,与注释相同。
按钮点击的代码:
private void button1_Click(object sender, EventArgs e)
{
myMethod.Create(textBox1.Text, textBox2.Text, textBox3.Text);
}
在资源文件中写入数据的代码:
public class myMethod
{
public static void Create(string myName, string myValue, string myComment)
{
ResXResourceWriter resxWriter;
try
{
resxWriter = new ResXResourceWriter(@"D:\Validator_Tool\resx\resx\myres.resx");
resxWriter.AddResource("Name", myName);
resxWriter.AddResource("Value",myValue);
resxWriter.AddResource("Comment", myComment);
resxWriter.Close();
}
catch (FileNotFoundException caught)
{
MessageBox.Show("Source: " + caught.Source + " Message: " + caught.Message);
}
}
}
请帮我将这3个值连续追加到新行中。
答案 0 :(得分:2)
尝试使用 ResXDataNode
。
名称和值可以传递给它的一个构造函数:
public ResXDataNode(string name, object value)
可以通过属性Comment
设置评论。
在这种情况下使用对象初始化器很方便:
public static void Create(string myName, string myValue, string myComment)
{
ResXResourceWriter resxWriter;
try
{
resxWriter = new ResXResourceWriter(@"D:\Validator_Tool\resx\resx\myres.resx");
// --- Use this if it looks more readable and convenient ---
// var node = new ResXDataNode(myName, myValue);
// node.Comment = myComment;
// resxWriter.AddResource(node);
resxWriter.AddResource(new ResXDataNode(myName, myValue)
{
Comment = myComment
});
resxWriter.Close();
}
catch (FileNotFoundException caught)
{
MessageBox.Show("Source: " + caught.Source + " Message: " + caught.Message);
}
}