2015-06-13 78 views
0

在下面的代碼中,我有一個combobox。當我嘗試填充combobox中的值時,在加載時它將調用SelectedIndexChanged而不選擇值combobox選擇索引更改在組合框中填充值時調用

public void BindCombobox() 
{  
    Software pd = new Software(); 
    DataSet dsProj = pd.UserID(); 
    cbValue.DataSource = dsProj.Tables[0];//Calling SelectedIndexChanged 
    cbValue.DisplayMember = "ProjectName"; 
    cbValue.ValueMember = "ProjectID"; 
} 

private void cbValue_SelectedIndexChanged(object sender, EventArgs e) 
{ 
} 
+1

你能更好地解釋什麼是你的問題?當將數據源綁定到組合框時,將調用SelectedIndexChanged – Steve

+0

@steve當我將數據源綁定到組合框時,將調用SelectedIndexChanged –

+0

仍然沒有解釋什麼是問題。您不希望在綁定數據源時調用該事件?或whatelse? – Steve

回答

0

我想你必須使用布爾變量。它可能會幫助你,我用這種方法來避免這個問題 做下面給出的東西。

1)聲明一個具有全局作用域的布爾型變量,將其設置爲false。 2)在綁定組合框之前設置boolean=false,並且在綁定完成後設置boolean=true。 2)現在在combobox_selectionChangeEvent的第一行上,檢查布爾值是true還是false的條件。如果它是真的,那麼做其餘的事情。

這樣的..

boolean flag=false 

public void BindCombobox() 
{ 
    Software pd = new Software(); 
    DataSet dsProj = pd.UserID(); 
    flag=false; 
    cbValue.DataSource = dsProj.Tables[0];//Calling SelectedindexChange 
    cbValue.DisplayMember = "ProjectName"; 
    cbValue.ValueMember = "ProjectID"; 
    flag=true; 
} 

private void cbValue_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    if(flag==true) 
    { 
     ... //rest of the code 
    } 
} 
相關問題