これをたくさん検索しようとしましたが、残念ながら運がありません。 COMポートとボーレートを選択して別のCOMポートに接続できるようにするアプリケーションがあります(信号が一方のポートに入り、もう一方のポートに入ります)。私はそれをXML形式に保存する保存機能を持っています。XMLファイルでdatagridviewを再生成する方法
XMLファイルのすべての情報がdatagridviewに入力されるように、その保存ファイルを開くことができますが、私はそれを行う方法を見つけることができません。 (私のアプリケーションでは、基本的なセットアップを使用して)
私は(レイアウトは完璧ではありませんが、私は後でそれを変更することができます)、それはこのようになり、GoogleのChromeでXMLファイルを開きます。
<Root_Element>
<Output_Port Output_Baud="9600">COM104</Output_Port>
<Serial_Port_Name Use="Checkbox is Off" Baud="9600" Extract="" Data="">COM3</Serial_Port_Name>
<Serial_Port_Name Use="Checkbox is Off" Baud="9600" Extract="" Data="">COM1</Serial_Port_Name>
<Serial_Port_Name Use="Checkbox is Off" Baud="9600" Extract="" Data="">COM6</Serial_Port_Name>
<Serial_Port_Name Use="Checkbox is Off" Baud="9600" Extract="" Data="">COM5</Serial_Port_Name>
<Serial_Port_Name Use="Checkbox is Off" Baud="9600" Extract="" Data="">COM4</Serial_Port_Name>
<Serial_Port_Name Use="Checkbox is On" Baud="9600" Extract="12345" Data="">COM100</Serial_Port_Name>
<Serial_Port_Name Use="Checkbox is Off" Baud="9600" Extract="" Data="">COM101</Serial_Port_Name>
<Serial_Port_Name Use="Checkbox is On" Baud="9600" Extract="" Data="">COM102</Serial_Port_Name>
<Serial_Port_Name Use="Checkbox is Off" Baud="9600" Extract="" Data="">COM103</Serial_Port_Name>
<Serial_Port_Name Use="Checkbox is Off" Baud="9600" Extract="" Data="">COM104</Serial_Port_Name>
<Serial_Port_Name Use="Checkbox is Off" Baud="9600" Extract="" Data="">COM105</Serial_Port_Name>
</Root_Element>
以下のコードはデータの保存方法です。私はちょうど本質的にこれの逆を行うことができ、元の場所にデータを戻すことができるようにしたい。
private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
{
// Create the XmlDocument.
XmlDocument doc = new XmlDocument();
// Create root element.
XmlElement rootElem = doc.CreateElement("Root_Element");
doc.AppendChild(rootElem);
// Add an "Output Port" element.
XmlElement outPortElem = doc.CreateElement("Output_Port");
outPortElem.Value = (string)comboBox1.SelectedItem;
rootElem.AppendChild(outPortElem);
// Add an "Output Baud" Attribute.
XmlAttribute outBaudAtt = doc.CreateAttribute("Output_Baud");
outBaudAtt.Value = (string)comboBox2.SelectedItem;
outPortElem.Attributes.Append(outBaudAtt);
foreach (DataGridViewRow row in dataGridView1.Rows)
{
var ip_port2 = (SerialPort)row.Tag;
// Write Serial Port Name element.
XmlElement nameElem = doc.CreateElement("Serial_Port_Name");
nameElem.Value = (string)row.HeaderCell.Value; // display the port name
rootElem.AppendChild(nameElem);
if (ip_port2.IsOpen == true) // if the ip_port is open
{
// Add a "Use" attribute.
XmlAttribute useAtt = doc.CreateAttribute("Use");
useAtt.Value = "Checkbox is On"; // display the port as "on"
nameElem.Attributes.Append(useAtt);
}
else if (ip_port2.IsOpen != true) // if the ip_port is closed
{
// Add a "Use" attribute.
XmlAttribute useAtt = doc.CreateAttribute("Use");
useAtt.Value = "Checkbox is Off"; // display the port as "off"
nameElem.Attributes.Append(useAtt);
}
// Add a "Baud" attribute.
XmlAttribute baudAtt = doc.CreateAttribute("Baud");
baudAtt.Value = (string)row.Cells[1].Value;
nameElem.Attributes.Append(baudAtt);
// Add an "Extract" attribute.
XmlAttribute extractAtt = doc.CreateAttribute("Extract");
extractAtt.Value = (string)row.Cells[2].Value;
nameElem.Attributes.Append(extractAtt);
// Add a "Data" attribute.
XmlAttribute dataAtt = doc.CreateAttribute("Data");
dataAtt.Value = (string)row.Cells[3].Value;
nameElem.Attributes.Append(dataAtt);
}
// Save the document to a file. White space is preserved (no white space).
doc.PreserveWhitespace = true;
doc.Save(saveFileDialog1.FileName);
助けがあれば助かります。前もって感謝します!