2016-01-22 43 views
1

我有2窗體第一個窗體有一個ListView和一個按鈕。第二種形式有同樣的事情。我想送1形式s ListView selected item to 2nd Form小號的ListView我可以發送一個窗體ListView項目到另一個窗體ListView在C#

1表單代碼:

public void UpdateListView(ListView source, ListView target) 
{ 
    foreach (ListViewItem item in source.SelectedItems) 
    { 
     target.Items.Add((ListViewItem)item.Clone()); 
    } 
} 

private void button1_Click(object sender, EventArgs e) 
{ 
    UpdateListView(form1ListView,form2ListView); 
} 

第二表單代碼:

private void button1_Click(object sender, EventArgs e) 
{ 
    Form1 form1 = new Form1(); 
    form1.show(); 
} 

但我不能在Form1使用form2ListView。我怎樣才能做到這一點?我的第二種形式ListView名稱是form2ListView。

+0

form2_butto ñ點擊將打開表格1,然後如何有可能'form1ListView'作爲源 –

+0

將form1的列表視圖更改爲公開。然後,您可以在創建實例後訪問它。 – CathalMF

+0

CathaIMF當列表視圖公開然後沒有錯誤,但我不能得到項目 –

回答

0

只是通過整個表單到Form作爲參數

Form1 form1 = new Form1(form2); 
+0

你確定op的'Form1'有一個構造函數,接受一個'Form2'類型的參數 –

+0

雖然我知道這是一個愚蠢的解決方案 - 這就是問題。 – Marty

0

你可以簡單地提供Form2ListView作爲構造函數的參數爲​​Form1

public partial class Form1 
{ 
    private readonly ListView form2ListView; 

    public Form1() { //... default initialization } 

    // constructor with ListView as argument 
    public Form1(ListView _form2ListView) 
    { 
     form2ListView = _form2ListView; 
    } 
} 

然後你就可以實例化Form1像這個:

private void button1_Click(object sender, EventArgs e) 
{ 
    Form1 form1 = new Form1(myListView); // don't know how your ListView is named 
    form1.show(); 
} 
相關問題