我有一个 xml 文件,它是由这样的块构建的:
<BasicOptions id="OwnCrypt">
<Font>Angsana New</Font>
<FontColor>Aquamarine</FontColor>
<FontSize>12</FontSize>
<FontStyle>Normál</FontStyle>
<BackgroundImage>Cryptonite\System\Resources\Media\Pics\grumpy.jpg</BackgroundImage>
<ImageResolution>1280 X 1024</ImageResolution>
<FormSize>1280 X 1024</FormSize>
<FormPosition>CenterParent</FormPosition>
<Opacity>70</Opacity>
</BasicOptions>
我在一个根元素(名为选项)中制作了六个这样的块。我对节点有一些问题
<FormSize>
,因为从选项表单中它可以获得空值(这意味着我不会更改它的分辨率),然后我想将<FormSize>
节点的值设置为表单的基本分辨率。这是更新程序按钮事件(如果有帮助的话):
private void button1_Click(object sender, EventArgs e)
{
boxes[0] = checkBox1;
boxes[1] = checkBox2;
boxes[2] = checkBox3;
boxes[3] = checkBox4;
boxes[4] = checkBox5;
boxes[5] = checkBox6;
ArrayList al = new ArrayList();
ArrayList bl = new ArrayList();
foreach (CheckBox cb in boxes)
{
if (cb.Checked)
al.Add(cb.Text);
}
if(comboBox1.Text=="")//Betűtípus
{
bl.Add("Times New Roman");
}
else
bl.Add(comboBox1.Text);
if (comboBox2.Text == "")//Betűszín
{
bl.Add("Fekete");
}
else
bl.Add(comboBox2.Text);
bl.Add(numericUpDown1.Value.ToString());//Betűméret
if (comboBox3.Text == "")//Betűstílus
{
bl.Add("Normál");
}
else
bl.Add(comboBox3.Text);
if (comboBox4.Text == "")//háttérkép
{
bl.Add(@"Cryptonite\System\Resources\Media\Pics\grumpy.jpg");
}
else
bl.Add(comboBox4.Text);
if (comboBox5.Text == "")//háttérkép felbont
{
Xml.resRequest(al);
}
else
bl.Add(comboBox5.Text);
if (comboBox6.Text == "")//felbontás
{
Xml.resRequest(al);
}
else
bl.Add(comboBox6.Text);
if (comboBox7.Text == "")
{
bl.Add("WindowsDefault");
}
else
bl.Add(comboBox7.Text);
bl.Add(numericUpDown2.Value.ToString());
Xml.Writer(al, bl);
al.Clear();
bl.Clear();
}
它有一个顺序来获取值并提供给 updater 方法,但是如果有人有更好的主意,那让我很高兴。:)