好了,所以我想通過使用多個按鈕,即禁用按鈕問題
從一個列表框移動項目的方式我有2個按鈕cmdRight和cmdRight2這兩者都是對的形式負載殘疾人
如果用戶在第一個列表框中選擇一個項目cmdRight按鈕啓用,但如果用戶在第一個列表框中選擇了多個項目,則cmdRight2仍然被禁用。cmdRight2按鈕啓用但禁用了cmdRight。
我有移動按鈕的工作,但我遇到的問題是移動多個項目後,cmdRight2按鈕的cmdRight按鈕啓用(它不應該它應該只啓用後,選擇一個單一的項目列表框)。我已經嘗試了很多如果陳述等,但它仍然發生。
我是C#的新手,所以任何幫助,將不勝感激。
謝謝
private void lbList1_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.lbList1.SelectedItems != null)
{
cmdRight.Enabled = true; //enable cmdRight
cmdClear.Enabled = true; //enable cmdClear
if (this.lbList1.SelectedItems.Count > 1)//if multiple items selected
{
cmdRight.Enabled = false;
cmdRight2.Enabled = true; //enable cmdRight2
}
}
}
private void cmdRight2_Click(object sender, EventArgs e)
{
foreach (int i in lbList1.SelectedIndices)
{
lbList2.Items.Add(lbList1.Items[i].ToString());
}
while (lbList1.SelectedItems.Count > 0)
{
lbList1.Items.Remove(lbList1.SelectedItems[0]);
}
cmdRight2.Enabled = false;
}
private void cmdRight_Click(object sender, EventArgs e)
{
lbList2.Items.Add(lbList1.SelectedItem); //Add selected item from list1 to list2
lbList1.Items.Remove(lbList1.SelectedItem);//remove the selected item in list1
cmdRight.Enabled = false; //disable cmdRight
}
有你把斷點在每個函數的開始以查看它們被調用的順序?或者至少每次將cmdRight.Enabled設置爲true時斷點。 – taylonr
這不是您的問題的答案,但爲什麼不只是結合這兩個按鈕(通過簡單地消除cmdRight並保持cmdRight2)?顯然我不知道你的設計,但它可能會解決你的問題。 –
我試過斷點,出於某種原因if語句「if(this.lbList1.SelectedItems!= null)」似乎總是如此。即使沒有選擇任何東西 –