Csharp/C Sharp/GUI Windows Form/Color Dialog
Click on me to change the color
<source lang="csharp"> using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; public class MainForm : Form {
private ColorDialog colorDlg; private Color currColor = Color.DimGray; public MainForm() { CenterToScreen(); colorDlg = new ColorDialog(); this.MouseDown += new MouseEventHandler(MainForm_MouseDown); } void MainForm_MouseDown(object sender, MouseEventArgs e) { if (colorDlg.ShowDialog() != DialogResult.Cancel) { currColor = colorDlg.Color; this.BackColor = currColor; string strARGB = colorDlg.Color.ToString(); MessageBox.Show(strARGB, "Color is:"); } }
}
</source>
Color Converter
<source lang="csharp"> using System; using System.Collections.Generic; using System.ruponentModel; using System.Data; using System.Drawing; using System.Windows.Forms; // class Form1 : Form {
private Color theColor; public Form1() { InitializeComponent(); tbRed.Text = "0"; tbGreen.Text = "0"; tbBlue.Text = "0"; } private void parseRGB() { int r, g, b; r = Int16.Parse(tbRed.Text); r = Math.Min(r, 255); g = Int16.Parse(tbGreen.Text); g = Math.Min(g, 255); b = Int16.Parse(tbBlue.Text); b = Math.Min(b, 255); theColor = Color.FromArgb(r, g, b); tbHue.Text = theColor.GetHue().ToString(); tbSat.Text = theColor.GetSaturation().ToString(); tbBright.Text = theColor.GetBrightness().ToString(); this.Invalidate(); } private void tbRed_TextChanged(object sender, EventArgs e) { parseRGB(); } private void tbGreen_TextChanged(object sender, EventArgs e) { parseRGB(); } private void tbBlue_TextChanged(object sender, EventArgs e) { parseRGB(); } private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; SolidBrush backBrush = new SolidBrush(System.Drawing.SystemColors.Control); g.FillRectangle(backBrush, this.ClientRectangle); backBrush.Dispose(); Rectangle r = new Rectangle(10, 80, 100, 40); SolidBrush b = new SolidBrush(theColor); g.SetClip(this.ClientRectangle); g.FillRectangle(b, r); b.Dispose(); } private void InitializeComponent() { this.tbRed = new System.Windows.Forms.TextBox(); this.tbGreen = new System.Windows.Forms.TextBox(); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); this.tbBlue = new System.Windows.Forms.TextBox(); this.tbHue = new System.Windows.Forms.TextBox(); this.tbSat = new System.Windows.Forms.TextBox(); this.label4 = new System.Windows.Forms.Label(); this.label5 = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label(); this.tbBright = new System.Windows.Forms.TextBox(); this.SuspendLayout(); // // tbRed // this.tbRed.Location = new System.Drawing.Point(45, 10); this.tbRed.Name = "tbRed"; this.tbRed.Size = new System.Drawing.Size(47, 20); this.tbRed.TabIndex = 1; this.tbRed.TextChanged += new System.EventHandler(this.tbRed_TextChanged); // // tbGreen // this.tbGreen.Location = new System.Drawing.Point(149, 10); this.tbGreen.Name = "tbGreen"; this.tbGreen.Size = new System.Drawing.Size(47, 20); this.tbGreen.TabIndex = 2; this.tbGreen.TextChanged += new System.EventHandler(this.tbGreen_TextChanged); // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(13, 13); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(25, 14); this.label1.TabIndex = 8; this.label1.Text = "Red"; // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(106, 13); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(36, 14); this.label2.TabIndex = 9; this.label2.Text = "Green"; // // label3 // this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(212, 13); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(27, 14); this.label3.TabIndex = 10; this.label3.Text = "Blue"; // // tbBlue // this.tbBlue.Location = new System.Drawing.Point(246, 10); this.tbBlue.Name = "tbBlue"; this.tbBlue.Size = new System.Drawing.Size(47, 20); this.tbBlue.TabIndex = 3; this.tbBlue.TextChanged += new System.EventHandler(this.tbBlue_TextChanged); // // tbHue // this.tbHue.Location = new System.Drawing.Point(45, 44); this.tbHue.Name = "tbHue"; this.tbHue.ReadOnly = true; this.tbHue.Size = new System.Drawing.Size(47, 20); this.tbHue.TabIndex = 4; // // tbSat // this.tbSat.Location = new System.Drawing.Point(149, 44); this.tbSat.Name = "tbSat"; this.tbSat.ReadOnly = true; this.tbSat.Size = new System.Drawing.Size(47, 20); this.tbSat.TabIndex = 5; // // label4 // this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(13, 47); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(25, 14); this.label4.TabIndex = 11; this.label4.Text = "Hue"; // // label5 // this.label5.AutoSize = true; this.label5.Location = new System.Drawing.Point(121, 45); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(21, 14); this.label5.TabIndex = 12; this.label5.Text = "Sat"; // // label6 // this.label6.AutoSize = true; this.label6.Location = new System.Drawing.Point(205, 47); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(34, 14); this.label6.TabIndex = 13; this.label6.Text = "Bright"; // // tbBright // this.tbBright.Location = new System.Drawing.Point(246, 42); this.tbBright.Name = "tbBright"; this.tbBright.ReadOnly = true; this.tbBright.Size = new System.Drawing.Size(47, 20); this.tbBright.TabIndex = 6; // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(431, 217); this.Controls.Add(this.tbBright); this.Controls.Add(this.tbBlue); this.Controls.Add(this.label6); this.Controls.Add(this.label5); this.Controls.Add(this.label4); this.Controls.Add(this.label3); this.Controls.Add(this.label2); this.Controls.Add(this.label1); this.Controls.Add(this.tbSat); this.Controls.Add(this.tbHue); this.Controls.Add(this.tbGreen); this.Controls.Add(this.tbRed); this.Name = "Form1"; this.Text = "Form1"; this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint); this.ResumeLayout(false); this.PerformLayout(); } private System.Windows.Forms.TextBox tbRed; private System.Windows.Forms.TextBox tbGreen; private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label3; private System.Windows.Forms.TextBox tbBlue; private System.Windows.Forms.TextBox tbHue; private System.Windows.Forms.TextBox tbSat; private System.Windows.Forms.Label label4; private System.Windows.Forms.Label label5; private System.Windows.Forms.Label label6; private System.Windows.Forms.TextBox tbBright; [STAThread] static void Main() { Application.EnableVisualStyles(); Application.Run(new Form1()); }
}
</source>
Display color dialog and get user selection
<source lang="csharp">
using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; public class Test { static void Main() { System.Windows.Forms.ColorDialog colorDlg = new System.Windows.Forms.ColorDialog(); colorDlg.AnyColor = true; colorDlg.ShowHelp = true; if (colorDlg.ShowDialog() != DialogResult.Cancel) { string strARGB = colorDlg.Color.ToString(); Console.WriteLine(strARGB); } } }
</source>