لم يتغير اللون الخلفي لمربع نص C# winform باستخدام عبارة if-else


لدي زرين (قراءة وكتابة)، كل زر قراءة وكتابة يحتوي على 5 مربعات نصية. أريد مقارنة القيمة بين القراءة والكتابة، إذا كانت متطابقة، فسيظهر مربع النص اللون الأخضر واللون الأحمر، لكنه لم يتغير اللون عندما قمت بالنقر فوق زر القراءة مرة أخرى

string[] rTextBoxes = { textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text};
string[] wTextBoxes = { textBox15.Text, textBox16.Text, textBox17.Text, textBox18.Text, textBox19.Text};
var totalCount = readTextBoxes.Count();
for (int i = 0; i < totalCount; i++)
{
    if (rTextBoxes[i] != wTextBoxes[i])
    {
        foreach (var control in this.Controls)
        {
            var textBox = control as TextBox;
            if (textBox != null)
            {
                textBox.ReadOnly = false;
            }
        }
        textBox15.BackColor = Color.Red;
        textBox16.BackColor = Color.Red;
        textBox17.BackColor = Color.Red;
        textBox18.BackColor = Color.Red;
        textBox19.BackColor = Color.Red;

    }
    else
    {
        textBox15.BackColor = Color.Green;
        textBox16.BackColor = Color.Green;
        textBox17.BackColor = Color.Green;
        textBox18.BackColor = Color.Green;
        textBox19.BackColor = Color.Green;
    }

}

ما حاولت:

أحاول استخدام طريقة الاستدعاء وجعل اللون فارغًا، لكن لا توجد استجابة على اللون الذي تغير أيضًا.

if (textBox.InvokeRequired)
{
    textBox.Invoke((MethodInvoker)delegate
    {
        textBox.BackColor = Color.Empty;
    });
}

الحل 1

الاستدعاء غير ذي صلة: فهو مطلوب فقط عند استخدام مؤشر ترابط آخر غير مؤشر ترابط واجهة المستخدم الرسومية الرئيسي. قم باستدعاء “نقل الكود” مرة أخرى إلى مؤشر ترابط واجهة المستخدم الرسومية بحيث يكون الوصول إلى عناصر التحكم آمنًا.

إذا لم يتغير لونك، فهناك عدة أسباب محتملة – على سبيل المثال totalCount صفر أو سلبي، لن يتغير اللون.
لا يمكننا معرفة ذلك دون أن نكون قادرين على تشغيل التعليمات البرمجية الخاصة بك بالكامل – ولا يمكننا القيام بذلك لأنه لا يمكننا الوصول إلى نظامك.

لذا، سيكون الأمر متروكًا لك.
لحسن الحظ، لديك أداة متاحة لك والتي ستساعدك على معرفة ما يجري: مصحح الأخطاء. إذا كنت لا تعرف كيفية استخدامه، فمن المفترض أن يوفر لك Google السريع لـ “مصحح أخطاء Visual Studio” المعلومات التي تحتاجها.

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

عذرًا، ولكن لا يمكننا القيام بذلك نيابةً عنك – حان الوقت لتتعلم مهارة جديدة (ومفيدة جدًا جدًا): تصحيح الأخطاء!

コメント

タイトルとURLをコピーしました