سؤال

كيف يمكنك تغيير لون النص من مربع المجموعة في C #؟ "الوثائق" لا تذكر حتى هذا، ولم يرفع googling إجابة.

شكرا! آلان

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

المحلول

استخدم ال ForeColor خاصية. عينة من الرموز:

using System;
using System.Drawing;
using System.Windows.Forms;

class Test
{       
    [STAThread]
    static void Main(string[] args)
    {
        Form form = new Form();
        GroupBox group = new GroupBox();
        group.Text = "Text";
        group.ForeColor = Color.Red;
        form.Controls.Add(group);
        Application.Run(form);
    }
}

نصائح أخرى

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

    private void button1_Click(object sender, EventArgs e)
    {
        List<Color> lstColour = new List<Color>();
        foreach (Control c in groupBox1.Controls)
            lstColour.Add(c.ForeColor);

        groupBox1.ForeColor = Color.Red; //the colour you prefer for the text

        int index = 0;
        foreach (Control c in groupBox1.Controls)
        {
            c.ForeColor = lstColour[index];
            index++;
        }
    }

بالطبع يمكن أن يكون الرمز أعلاه بلا معنى إذا قمت بإضافة عناصر تحكم برمجيا لاحقا إلى مجموعة المجموعة، ولكن الشيء الجيد هو التعامل مع كل هذه المواقف عن طريق إضافة شروط إضافية في التعليمات البرمجية. من المؤكد أن تكون مضاعفة، يمكن توظيف قائمة من المفاتيح عن السيطرة ورياضة السيطرة.

إذا كنت تشير إلى نص Groupbox نفسه، فاستخدم ما نشره Jon Skeet. إذا كنت تشير إلى جميع الضوابط اللاحقة في مجموعة المجموعة، فيمكنك استخدام هذا الرمز:

        foreach (Control c in this.groupBox1.Controls)
        {
            c.ForeColor = this.groupBox1.ForeColor; //or whatever color you want
        }

أو قمت بتغيير الرمز الخاص بك قليلا حتى يمكن للمستخدم الاختيار بين نوعين من الألوان ل GroupBox فقط:

    private void SettingGroupBoxColor(bool bSelected)
    {
        if (!bSelected)
            groupBox1.ForeColor = Color.Red;
        else
            groupBox1.ForeColor = Color.Green;
        foreach (Control c in this.groupBox1.Controls)
        {
            c.ForeColor = Color.Black;
        }
    }

تمر قيم "صحيح" أو "خطأ" إلى الجزء العلوي من Mehod، سيغير رواية Groupbox فقط - في حين أن جميع أدوات التحكم الأخرى سيبقى مناطق السباحة الافتراضية (أسود).

سنت من الألغام.

أنا أفترض أنك في WinForms ليس في WPF الآن.

لتغيير لون النص المربع للمجموعة التي تستخدمها، فإن هذا يغير لون الخط في نص الرأس.

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