だから私は何か新しいことを試みています..コードの先頭にグローバルなListViewItemを追加したので、リストに新しいサブアイテムが収まると思うときはいつでも簡単に追加できます。
そこで、この新しい方法を試すために、簡単なリストビューと現在の時刻を追加するボタンを作成しました。一度クリックするとうまく機能しますが、もう一度[追加]をクリックしようとすると、このエラーがスローされます。
System.ArgumentException: 'アイテム'11:24'を複数の場所に追加または挿入することはできません。まず、現在の場所から削除するか、クローンを作成する必要があります。
削除したりクローンを作成したりせずにこれを乗り越える方法はありますか?
using System;
using System.Windows.Forms;
namespace Listviews
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
ListViewItem lvi = new ListViewItem();
private void btnAdd_Click(object sender, EventArgs e)
{
string time = DateTime.Now.ToString("HH:mm");
lvi.Text = time;
listView1.Items.Add(lvi);
}
}
}
同じアイテムを何度も追加しています(テキストが異なるからといって、別のアイテムであるとは限りません)。のAdd
メソッドにListView
は、文字列を受け入れるオーバーロードがあります。このようにして、新しいものlistviewitem
が自動的に作成されます。
namespace Listviews
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// Not needed
//ListViewItem lvi = new ListViewItem();
private void btnAdd_Click(object sender, EventArgs e)
{
string time = DateTime.Now.ToString("HH:mm");
// Just add the time directly as a string
listView1.Items.Add(time);
}
}
}
または、質問の下の最初のコメントを確認してください。ただし、アイテムを変更したり、外部に保存したりしない限り、を作成する必要はありませんlistViewItem
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加