我有一个名为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