日期:2014-05-18  浏览次数:20881 次

我有两个窗体form1和form2,怎么在form2中点击按钮增加form1中ImageList1里面的图片,然后绑定到form1中的listview上面。
rt

form1窗体中放入的是一个DataGridView绑定的原始图片列表,还有ImageList和ListView控件用来装载特殊的图片,双击DataGridView中绑定的图片进入form2中的图片详细信息,form2中有一个按钮是用来给ImageList和ListView赋值的,增加数据到ImageList和ListView中的,可是现在没有反映,请帮忙看看,谢谢。


form1代码: form1中的代码button1_Click用来测试的,放在本页调用AddimageList是可以成功给ImageList和ListView增加数据的。
C# code
       
 private void button1_Click(object sender, EventArgs e)
        {
            //imageList1.Images.Add(pictureBig.Image);
            //listView1.LargeImageList = imageList1;
            AddimageList("1", "http://www.baidu.com/img/baidu_sylogo1.gif");
        }

        public void AddimageList(string pid, string smallImage)
        {
            
            imageList1.Images.Add(pid, new Bitmap((new System.Net.WebClient()).OpenRead(smallImage)));
            listView1.Items.Add(pid, pid);
        }





form2代码:
C# code
        private void btnSelected_Click(object sender, EventArgs e)
        {
            string productID = label4.Text.Trim();
            string smallImageUrl = label2.Text.Trim();

            frmMain f = new frmMain();
            f.AddimageList(productID, smallImageUrl);
        }



放在form2中这样写了之后 form1中的ListView和ImageList断点到form1中ImageList.images.count=1,ListView.item.count=1 form1中得到了数据,为什么ListView不现实出来,请问怎么解决啊?

------解决方案--------------------
因为你frmMain f = new frmMain();
重新new了一个主窗口了,所以imageList1也被重置了.
------解决方案--------------------
双击DataGridView中绑定的图片进入form2,
Form2 form2= new Form2();
Form2.Owner = this;

private void btnSelected_Click(object sender, EventArgs e)
{
string productID = label4.Text.Trim();
string smallImageUrl = label2.Text.Trim();

frmMain f = new frmMain();
frmMain f= (frmMain )this.Owner;
f.AddimageList(productID, smallImageUrl);
}


------解决方案--------------------
你在form2里面不要new frmMain()
C# code

public partial class Form2 : Form
{
    public frmMain form1;
    public Form2(frmMain fm1)
    {
        form1 = fm1;
        InitializeComponent();
    }

    private void btnSelected_Click(object sender, EventArgs e)
    {
        string productID = label4.Text.Trim();
        string smallImageUrl = label2.Text.Trim();

        //frmMain f = new frmMain();
        f.AddimageList(productID, smallImageUrl);
    }
}

------解决方案--------------------
sorry
private void btnSelected_Click(object sender, EventArgs e)
{
string productID = label4.Text.Trim();
string smallImageUrl = label2.Text.Trim();

frmMain f= (frmMain)this.Owner;
f.AddimageList(productID, smallImageUrl);
}