• 颜色下拉菜单(combox)


    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
     
    namespace Combox
    {
        /// <summary>
        /// Form1 的摘要说明。
        /// </summary>
        public class Form1 : System.Windows.Forms.Form
        {
            private System.Windows.Forms.ComboBox comboBox1;
            private System.Windows.Forms.Label label1;
            private System.Windows.Forms.Panel panel1;
            /// <summary>
            /// 必需的设计器变量。
            /// </summary>
            private System.ComponentModel.Container components = null;
     
            public Form1()
            {
                //
                // Windows 窗体设计器支持所必需的
                //
                InitializeComponent();
     
                //
                // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
                //
            }
     
            /// <summary>
            /// 清理所有正在使用的资源。
            /// </summary>
            protected override void Dispose( bool disposing )
            {
                if( disposing )
                {
                    if (components != null) 
                    {
                        components.Dispose();
                    }
                }
                base.Dispose( disposing );
            }
     
            #region Windows 窗体设计器生成的代码
            /// <summary>
            /// 设计器支持所需的方法 - 不要使用代码编辑器修改
            /// 此方法的内容。
            /// </summary>
            private void InitializeComponent()
            {
                this.comboBox1 = new System.Windows.Forms.ComboBox();
                this.label1 = new System.Windows.Forms.Label();
                this.panel1 = new System.Windows.Forms.Panel();
                this.SuspendLayout();
                // 
                // comboBox1
                // 
                this.comboBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
                this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
                this.comboBox1.Location = new System.Drawing.Point(168, 8);
                this.comboBox1.Name = "comboBox1";
                this.comboBox1.Size = new System.Drawing.Size(152, 22);
                this.comboBox1.TabIndex = 0;
                this.comboBox1.SelectedIndexChanged  = new System.EventHandler(this.comboBox1_SelectedIndexChanged);
                this.comboBox1.MeasureItem  = new System.Windows.Forms.MeasureItemEventHandler(this.comboBox1_MeasureItem);
                this.comboBox1.DrawItem  = new System.Windows.Forms.DrawItemEventHandler(this.comboBox1_DrawItem);
                // 
                // label1
                // 
                this.label1.Location = new System.Drawing.Point(8, 16);
                this.label1.Name = "label1";
                this.label1.Size = new System.Drawing.Size(160, 16);
                this.label1.TabIndex = 1;
                this.label1.Text = "请在组合框中选择颜色值:";
                // 
                // panel1
                // 
                this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
    
                this.panel1.Location = new System.Drawing.Point(8, 40);
                this.panel1.Name = "panel1";
                this.panel1.Size = new System.Drawing.Size(312, 136);
                this.panel1.TabIndex = 2;
                // 
                // Form1
                // 
                this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
                this.ClientSize = new System.Drawing.Size(328, 184);
                this.Controls.Add(this.panel1);
                this.Controls.Add(this.label1);
                this.Controls.Add(this.comboBox1);
                this.MaximizeBox = false;
                this.Name = "Form1";
                this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
                this.Text = "演示制作带图形的组合框";
                this.Load  = new System.EventHandler(this.Form1_Load);
                this.ResumeLayout(false);
     
            }
            #endregion
     
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main() 
            {
                Application.Run(new Form1());
            }
     
            private void Form1_Load(object sender, System.EventArgs e)
            {
            //  this.comboBox1.DisplayMember="Color";
                this.comboBox1.Items.Add(Brushes.Cyan);
                this.comboBox1.Items.Add(Brushes.DarkSalmon);
                this.comboBox1.Items.Add(Brushes.Gray);
                this.comboBox1.Items.Add(Brushes.Green);
                this.comboBox1.Items.Add(Brushes.AliceBlue);
                this.comboBox1.Items.Add(Brushes.Black);
                this.comboBox1.Items.Add(Brushes.Blue);
                this.comboBox1.Items.Add(Brushes.Chocolate);
                this.comboBox1.Items.Add(Brushes.Pink);
                this.comboBox1.Items.Add(Brushes.Red);
                this.comboBox1.Items.Add(Brushes.LightBlue);
                this.comboBox1.Items.Add(Brushes.Brown);
                this.comboBox1.Items.Add(Brushes.DodgerBlue);
                this.comboBox1.Items.Add(Brushes.MediumPurple);
                this.comboBox1.Items.Add(Brushes.White);
                this.comboBox1.Items.Add(Brushes.Yellow);           
            }
     
            private void comboBox1_MeasureItem(object sender, System.Windows.Forms.MeasureItemEventArgs e)
            {//设置列表项宽
                e.ItemHeight=this.comboBox1.ItemHeight-2;           
            }
     
            private void comboBox1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
            {//绘制列表项
     
                ComboBox MyCombox=(ComboBox)sender;
                if(e.Index==-1)
                    return;
                if(sender==null)
                    return;
                SolidBrush MyBrush=(SolidBrush)MyCombox.Items[e.Index];
                Graphics g=e.Graphics;
                //如果已经进行选择,则绘制正确的背景颜色和聚集框
                e.DrawBackground();
                e.DrawFocusRectangle();
                //绘制颜色的预览框
                Rectangle MyRect=e.Bounds;
                MyRect.Offset(2,2);
                MyRect.Width=50;
                MyRect.Height-=4;
                g.DrawRectangle(new Pen(e.ForeColor),MyRect);
                //获取选定颜色的相应画刷对象,并填充预览框
                MyRect.Offset(1,1);
                MyRect.Width-=2;
                MyRect.Height-=2;
                g.FillRectangle(MyBrush,MyRect);
                //绘制选定颜色的名称
                g.DrawString(MyBrush.Color.Name.ToString(),Font,new SolidBrush(e.ForeColor),e.Bounds.X 60,e.Bounds.Y 1);
            }
     
            private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
            {//显示选择的颜色
                if(this.comboBox1.SelectedIndex>=0)
                {
                    SolidBrush MyBrush=(SolidBrush)(this.comboBox1.SelectedItem);
                    this.panel1.BackColor=MyBrush.Color;                
                }           
            }
        }
    }

  • 相关阅读:
    halcon应用案例探究
    Halcon中模板匹配方法的总结归纳
    halcon开发必读
    全局Threshold和动态阈值分割Dyn_Threshold的应用场景
    halcon电路断裂检测
    halcon之 distance_transform
    VS调试不能进入断点,提示当前不会命中断点还未为文档加载任何符号
    .net reactor使用教程(一)——界面各功能说明(转)
    (转) 开运算opening_circle和闭运算closing_circle的异同
    Win10系统安装UEFI+GPT配置
  • 原文地址:https://www.cnblogs.com/belx/p/9194778.html
Copyright © 2020-2023  润新知