2010-11-08 47 views

回答

3

根據你最近的問題,這聽起來像你正在試圖找出如何找到或設置基於該項目中顯示的文本在組合框中選擇的項目。我不完全相信你怎麼有事情成立了,但請看看下面的代碼,看看是否有幫助:

private void button1_Click(object sender, EventArgs e) 
{ 
    DataTable dt = new DataTable(); 
    dt.Columns.Add("ID", typeof(int)); 
    dt.Columns.Add("Name", typeof(string)); 

    dt.Rows.Add(1, "A"); 
    dt.Rows.Add(2, "B"); 
    dt.Rows.Add(3, "C"); 

    comboBox1.DataSource = dt; 
    comboBox1.DisplayMember = "Name"; 
    comboBox1.ValueMember = "ID"; 

    // use SelectedValue to select the item with ID == 2 
    comboBox1.SelectedValue = 2; 

    // use FindStringExact() to find the index of text displayed in the item 
    comboBox1.SelectedIndex = comboBox1.FindStringExact("C"); 
} 

,並使用如成立上方的下拉框,你可以得到的顯示部件的文本像這樣:

private void button2_Click(object sender, EventArgs e) 
{ 
    foreach (var item in comboBox1.Items) 
     MessageBox.Show(((DataRowView)item)["Name"].ToString()); 
} 
+0

有兩個不同的東西。再次非常感謝你的幫助。目前我需要遍歷組合框中的每個strnig,請幫助! – 2010-11-08 23:19:05

+0

@我是一個女孩,請看我的更新。心連心。 – 2010-11-08 23:24:50

+0

錯誤無法將類型'字符串'轉換爲'System.Data.DataRowView' – 2010-11-08 23:27:59

0

嗯...遍歷一個組合框,使用(略pseudocoding,請做不是C + p沒有對代碼工作):

var newItems = new List<string>(); 
for(var i = 0; i < combobox1.Items.Count; i++) 
{ 
    newItems.Add(combobox1.items[i].Text); 
} 

然後訪問每個項目,使用:

foreach(item in newItems) 
{ 
var newVariable1 = item; 
} 

更多信息和您當前的代碼將很酷,我將能夠以這種方式更具體地幫助您解決您的問題。

+0

nope它仍然說不能轉換爲strnitg – 2010-11-08 23:29:51

0

解決方法相同,希望它有幫助: 將dataview源轉換回datatable,然後通過它循環。

DataView dt = (DataView)comboBox1.DataSource; 
     DataTable s = dt.Table; 
     foreach(DataRow dr in s.Rows) 

      MessageBox.Show(dr[0].ToString());