2016-05-30 58 views
1

這裏是:C#檢查字符串數據在組合框中displaymember

Datatable dt; 
...... 
....... 
cmbName.DataSource=dt; 
cmbName.ValueMember="ID"; 
cmbName.DisplayMember="Name"; 


private void cmbName_Validating(object sender, CancelEventArgs e) 
{   
    if (cmbName.Text == string.Empty) 
    { 
     MessageBox.Show("select correct name"); 
     e.Cancel = true; 
    } 
    else if (cmbName.Items.Contains(cmbName.Text)) 
    { 
     e.Cancel = false; 
    } 
    else 
    { 
     MessageBox.Show("select correct name"); 
     e.Cancel = true; 
    } 
} 

總是顯示 '選擇正確的名稱'。即使是從下拉列表中選擇。請有人建議我!

+0

所以你需要用戶不能寫,是不是在其項目組合的東西。它是否需要能夠完全符合?爲什麼也不使用下拉屬性? – Aimnox

回答

-1

根據你的陳述

如果您cmbname.Text是空的,它顯示了消息:

選擇正確的名稱

當你的cmbname.Text不是空的,然後它再次顯示了消息:

select correct n ame

當你從DropDownList中選擇時,你必須在else條件中指定你想要的輸出作爲輸出。

+0

它說如果它是空的,它顯示味精,如果它不是空的NOR'(cmbName.Items.Contains(cmbName.Text))'它也顯示它 – Aimnox

+0

感謝您的評論和原因:else if(cmbName.Items .contains(cmbName.Text)) { e.Cancel = false; }不工作? –

+0

if(cmbName.Text == string.Empty) { MessageBox.Show(「select correct name1」); e.Cancel = true; } 別的 { 如果(cmbName.Items.Contains(cmbName.Text)) { e.Cancel = FALSE; } else { MessageBox.Show(「select correct name2」); e.Cancel = true; } }也沒有工作。爲什麼? –

0

我做了這個代碼,這可以幫助別人:

if (Convert.ToInt32(cmbName.SelectedValue) >= 1) 
     { 
      e.Cancel = false; 

     } 
     else 
     { 
      MessageBox.Show("select correct name"); 
      e.Cancel = true; 
     } 
相關問題