我有一個名爲cmbSubjects
的組合框。我的項目的目的是在測驗比賽中改變主題。我希望當選定的項目被更改時,消息框應該詢問測驗高手,確認他們是否願意繼續,如果在更改之前有關組合框中的主題未解答的問題。如果他們回答「否」,則組合框應選擇其先前選擇的項目。我得到這個代碼來做到這一點,但問題是如果quix主機在消息框上選擇NO,消息框會出現兩次。我發現原因(在從斷點進入代碼之後)是,當消息框返回NO時,我的代碼將組合框的選定值更改爲其先前的值,這會觸發事件cmbSubjects_SelectedIndexChanged
。我嘗試通過添加一個變量來計算消息框出現的次數來修改代碼。問題在於它僅在組合框的值第一次更改後纔出現。下面的代碼實際上是修改後的代碼。誰能幫我這個?提前致謝。 (我正在使用C#)MessageBox出現兩次C#
private void cmbSubjects_SelectedIndexChanged(object sender, EventArgs e)
{
if (pnlAvailable.Controls.Count != 0)
{
if (countMsg < 1)
{
DialogResult res = MessageBox.Show("There are still available questions. Are you sure you want to change the subject?", "Changing subject...", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
if (res == DialogResult.Yes)
{
cmbIndex = cmbSubjects.SelectedIndex;
countMsg = 0;
switch (cmbSubjects.SelectedIndex)
{
case 0:
subject = "life";
break;
case 1:
subject = "math";
break;
case 2:
subject = "physical";
break;
case 3:
subject = "technology";
break;
case 4:
subject = "vocational";
break;
}
GenQstBtns();
}
else if (res == DialogResult.No)
{
countMsg = 1;
cmbSubjects.SelectedIndex = cmbIndex;
}
}
}
}
新知識。不知道。謝謝。將嘗試它。 – afaolek
謝謝,你剛剛解決了我的問題。希望我可以添加更多+ s。 – afaolek
+1。比提供的所有解決方法(包括我的)要好得多。 – Heinzi