2010-03-13 117 views
0

好吧,我有2個列表框,其中一個連接到另一個數據庫。將數據從一個列表框傳輸到另一個列表框#

我希望能夠將連接到數據庫的列表框中的選定項目發送到不是。

香港專業教育學院寫了這個代碼但是

listBox2.Items.Add(listBox1.SelectedItem); 

代替COPYIN我得到「

System.Data.DataRowView 

任何人就吃什麼建議的項目?

回答

0

我不靠近我的VS安裝檢查.NET庫,但是我估計你需要一個更深的屬性來獲得這個值,比如listBox1.SelectedItem.Value

0

您可以顯示第一個和第二個lsibox聲明的代碼嗎?其他控件具有像DisplayName和ValueName這樣的屬性 - 從數據行中設置哪些列將顯示在列表框中,以及哪些將被視爲值。在你的情況下,問題是第二個lisbox不知道應該在哪個列中顯示。

更新: 當listBox2.Items.Add(listBox1.SelectedItem)執行實際的原始數據行(這些來自DB)複製到第二個列表框。如果你想讓另一個列表框沒有連接到從數據庫獲得的值,你需要在放入第二個列表框之前創建它們的副本。

+0

我不刪除的數據有任何代碼聲明列表框中所有通過做最簡單的方法gui 但顯示成員是第一個列表框的.title。沒有做第二次,因爲我不希望它鏈接到數據庫 – Jenny 2010-03-13 15:23:19

+0

@珍妮:看到更新的答案 – 2010-03-13 15:37:43

0

我做了這個簡單的程序:

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 

     listBox1.SelectedIndexChanged += new EventHandler(listBox1_SelectedIndexChanged); 
     listBox1.Items.Add("1"); 
     listBox1.Items.Add("2"); 
     listBox1.Items.Add("3"); 
    } 

    void listBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     listBox2.Items.Add(listBox1.SelectedItem); 
    } 
} 

和它的作品沒有任何問題。所以我認爲你的程序不起作用,因爲你的項目的類型是System.Data.DataRowView,不能轉換爲字符串。

0
private void CopySelItems(ListBox from, ListBox to) 
    { 
     for (int i = 0; i < from.SelectedItems.Count; i++) 
     { 
      to.Items.Add(from.SelectedItems[i].ToString()); 
     } 


    } 
0

這是一個列表框加載到另一個列表框,並在同一時間從SORCE列表框中

int mCount = ListBox1.Items.Count; 
for (int i = 0; i <= mCount - 1; i++) 
{ 
    if (ListBox1.Items[i] == ListBox1.SelectedItem) 
    { 
     ListBox2.Items.Add(ListBox1.SelectedItem); 
     ListBox1.Items.Remove(ListBox1.SelectedItem); 
     mCount=mCount - 1; 
     i=i - 1; 
    } 
} 
相關問題