کنترل ColorDialog

از کنترل ColorDialog وقتی استفاده می‌شود که شما بخواهید یک رنگ انتخاب کنید. به عنوان مثال وقتی بخواهید رنگ یک فونت یا رنگ پس زمینه فرم را تغییر دهید، می‌توانید از این کنترل استفاده کنید.
dialogs-01
برخی خواص مفید کنترل ColorDialog در زیر ذکر شده است:

خاصیت خاصیت
AllowFullOpen مشخص می‌کند که آیا کاربر می‌تواند یک رنگ سفارشی انتخاب کند یا نه؟
Color رنگی که کاربر انتخاب می‌کند را بر می‌گرداند.
CustomColors کلکسیونی از رنگ‌هایی که کاربر انتخاب کرده است را نشان می‌دهد.
FullOpen Specifies whether the part used to pick custom colors are automatically open.

پنجره ColorDialog، از رنگ‌های از پیش تعریف شده تشکیل شده است. شما می‌توانید با کیلک بر روی دکمه Define Custom Colors تعداد بیشتری رنگ مشاهده کنید. به طوری که در پنجره ظاهر شده هر رنگی که دوست دارید را، انتخاب نمایید. همچنین می‌توانید از گزینه‌های Sat ،Lum و Hue همچنین RGB برای انتخاب رنگ مورد نظر استفاده کرد. فلش ساه رنگی که در سمت راست پنجره اصلی قرار دارد، به شما اجازه تنظیم شفافیت یک رنگ خاص را می‌دهد. با استفاده از دکمه Add Custom Colors رنگ مورد نظرتان را به پالت Custom Colors برای استفاده‌های بعدی اضافه نمایید. برای نشان دادن عملکرد کادر محاوره‌ای ColorDialog یک فرم ساده به صورت زیر ایجاد می‌کنیم :
color-dialog-01
یک کنترل ColorDialog به فرم اضافه می‌کنیم. همانطور که مشاهده می‌کنید، این کنترل به قسمت پایینی بخش طراحی اضافه می‌شود.
color-dialog-02
برای تغییر خواص کنترل ColorDialog بر رویان کلیک کرده و به پنجره Properties بروید. بر روی کنترل Button دوبار کلیک کنید و یک کنترل کننده رویداد برای رویداد Click آن ایجاد نمایید. کد زیر را برای کنترل کننده رویداد بنویسید :

private void button1_Click(object sender, EventArgs e)
{
    DialogResult result = colorDialog1.ShowDialog();

    if (result == DialogResult.OK)
    {
        this.BackColor = colorDialog1.Color;
    }
}

خط اول (خط 2) متد استاتیک ()ShowDialog مربوط به نوع شمارشی ColorDialog را فراخوانی می‌کند. این متد باعث ظاهر شدن کادر محاوره‌ای می‌شود در نتیجه کاربر می‌تواند یک رنگ را انتخاب کند. این متد همچنین یک مقدار System.Windows.Forms.DialogResult بر می‌گرداند که نشان می‌دهد آیا کاربر بر روی دکمه OK کلیک کرده است یا دکمه Cancel؟ اگر کاربر بر روی یک رنگ کلیک کرده و دکمه OK را بزند کادر بسته می‌شود و رنگی که کاربر انتخاب کرده در خاصیت Color کنترل ذخیره می‌شود. با آزمایش مقدار result می‌توان تشخیص داد که کاربر بر روی دکمه OK کلیک کرده است. در صورتی که دکمه OK توسط کاربر فشار داده شود رنگ پس زمینه فرم به رنگی در می‌آید که توسط کاربر در خاصیت Color انتخاب شده است.
color-dialog-03
برنامه را اجرا کرده و بر روی دکمه کلیک کنید تا کادر محاوره‌ای باز شود. یک رنگ را انتخاب کرده و بر روی OK کلیک کنید. مشاهده می‌کنید که رنگ فرم به رنگی که شما انتخاب کرده‌اید تغییر می‌کند.