سؤال

لديّ الرمز التالي في مشروعي ، DeletesElector هو نموذج يحتوي على DataGridView (مع أعمدة Autosize) عليه.

try
{
      if (deleteSelector.ShowDialog() == DialogResult.OK)
      {
      }
}
catch (InvalidOperationException)
{
   //Bug workaround
}

Try Catch هو أن النموذج المنبثقة مع Gridview عليها يرفع invalidoperationException مرة واحدة في حين. هذا هو الحل المقترح ، انظر

http://connect.microsoft.com/visualstudio/feedback/details/145633/invalidoperationexception-then-when-a-form-with-bound-datagridview-with-auto-siving-is-is

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

هل كانت مفيدة؟

المحلول

ShowDialog يقوم بتشغيل مربع الحوار على مؤشر ترابط منفصل ، لذلك يتم إلقاء الاستثناء في مكدس مختلف إلى معالج الاستثناء الخاص بك.

أقترح عليك أن تجد حلًا مختلفًا - مجرد اصطياد InvalidOperationException فظيع للغاية ، ولا أرغب في المراهنة على أن النموذج سيكون في حالة معقولة بعد ذلك.

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