Csharp/C Sharp/GUI Windows Form/Color Dialog

Материал из .Net Framework эксперт
Версия от 14:33, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

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>