###前提・実現したいこと
C#で「ボタンをクリックすると、XMLの内容をDataGridView」に表示するプログラムを作りました。
しかし、ボタンを何回もクリックすると、XMLの内容がいくつも「DataGridView」に表示されてしまいます。
この問題を解決するためにはどのようにしたらよいのでしょうか?
###試してみた構文とその結果
1(現在の構文):dataGridView1.Columns.Clear();
上の構文ですと、二回目以降クリックすると表示されない
2(試してみた構文):dataGridView1.Rows.Clear();
ArgumentException はハンドルされませんでした。 型 'System.ArgumentException' のハンドルされていない例外が System.Data.dll で発生しました 追加情報:この一覧をクリアできません。 というエラーが表示されました
###該当のソースコード
※ XMLは、DataSetで読み込んでます
XML
1//test.xml 2<?xml version="1.0" encoding="utf-8" ?> 3<test_Table> 4 <test> 5 <番号>01</番号> 6 <名前>○○ 太郎</名前> 7 </test> 8 <test> 9 <注文番号>02</注文番号> 10 <曲名>×× 花子</曲名> 11 </test> 12</test_Table>
DataSetのプロパティ(イベントは未記入です)
(ApplicationSettings):(未記入) (Name):test DataSetName:testdataset EnforceConstraonts:True GenerateMember:True Locale:日本語(日本) Modifiers:Private Namespace:(未記入) Prefix:(未記入) Relations:(コレクション) RemotingFormat:Xml Tables:(コレクション)
Form1.csの構文(抜粋)
//form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Net; using System.IO; using System.Diagnostics; namespace DateGridViewテスト { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; } private void button1ToolStripMenuItem_Click(object sender, EventArgs e) { dataGridView1.Columns.Clear(); string FPtest = "test.xml"; test.ReadXml(FPtest); dataGridView1.DataSource = test; dataGridView1.DataMember = "test"; }
###開発環境等
OS:Windows10
ソフト:Microsoft Visual Studio2015
言語:Windows Form アプリケーション(C#)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/18 13:17