سؤال

أحاول أن أجعل الأمر حتى يُطلب من المستخدم تأكيد الخروج من برنامجي في C#، ولكن لسبب ما ، إذا قالوا "نعم" يرغبون في الخروج ، فإن مربع التأكيد سيظهر مرة أخرى. لا يمكنني معرفة السبب.

    if (MessageBox.Show("Are you sure you want to exit?", "Confirm exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
    {
        e.Cancel = true;
    }
    else { Application.Exit(); }
هل كانت مفيدة؟

المحلول

آه ، هل قمت بفحص CloseReason ل FormClosing حدث؟ أعتقد أنك قد تحصل على نفس الحدث لسببين مختلفين (على الرغم من أنني لا أتوقع أن يحدث ذلك بشكل طبيعي) ؛ افحص FormClosingEventArgs لمعرفة ما هي المعلمات.

نصائح أخرى

استخدم هذا

 private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (MessageBox.Show("Are you sure you want to close?", "Infomate", MessageBoxButtons.YesNo) == DialogResult.No)
        {
            e.Cancel = true;
        }        
    }

آه ، لقد اكتشفت كيفية إصلاحه. لقد أزلت application.exit () ؛ الحدث من الحدث الصيغ ، ونقله إلى الحدث المصمم. كل شيء يعمل الآن.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top