|
■No33698 (Azulean さん) に返信
> > public void add()
>> {
>> Form1 frm1 = new Form1();
>> string[] a = {"aaa","bbb"};
>> frm1.listView1.Items.Add(new ListViewItem(a));
>> }
> addメソッドを呼ぶ度に別のForm1が作られて、そこのlistView1にアイテムが追加されています。
> この作られたForm1は画面に表示されていないので分かりにくいのでしょうけれども。。。
>
> addメソッドを呼ぶ際の引数にthisを渡して、addメソッド側の引数としてForm1のインスタンスを取れるようにしましょう。
変更した以下のプログラムで正常にlistviewにアイテムを追加させることができました。
このたびはどうもありがとうございました。!!
namespace test_listview
{
public partial class Form1 : Form
{
private other_class oc; //追加
public Form1()
{
InitializeComponent();
}
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
this.oc = new other_class(this); //変更
this.oc.add(); //変更
}
}
public class other_class
{
private Form1 form1; // Form1のインスタンス追加
public other_class(Form1 form1) // コンストラクタ追加
{
this.form1 = form1;
}
public void add()
{
//Form1 form1 = new Form1(); コメントアウト
string[] a = { "aaa", "bbb" };
form1.listView1.Items.Add(new ListViewItem(a));
}
}
}
|