C#.NET自定义下拉框实现选中下拉list的值和显示框内的值不同
2021-03-04 06:25
                         标签:nim   led   control   val   dex   dbr   different   data   focus    下拉框list的值为: key1-value1 key2-value2 key3-value3 选中后显示: value1 value2 value3   C#.NET自定义下拉框实现选中下拉list的值和显示框内的值不同 标签:nim   led   control   val   dex   dbr   different   data   focus    原文地址:https://www.cnblogs.com/yanweichen/p/12947888.htmlusing System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            InitializeComboBox();
        }
        internal System.Windows.Forms.ComboBox ComboBox1;
        private string[] dropDawnList;
        private void InitializeComboBox()
        {
            this.ComboBox1 = new ComboBox();
            this.ComboBox1.DrawMode =
                System.Windows.Forms.DrawMode.OwnerDrawVariable;
            this.ComboBox1.Location = new System.Drawing.Point(10, 20);
            this.ComboBox1.Name = "ComboBox1";
            this.ComboBox1.Size = new System.Drawing.Size(250, 120);
            this.ComboBox1.DropDownWidth = 250;
            this.ComboBox1.TabIndex = 0;
            this.ComboBox1.DropDownStyle = ComboBoxStyle.DropDown;
            dropDawnList = new string[] { "key1-value1", "key2-value2", "key3-value3" };
            foreach (string ddl in dropDawnList) 
            {
                ComboBox1.Items.Add(ddl.Split(‘-‘)[1]);
            }
            this.Controls.Add(this.ComboBox1);
            // Hook up the MeasureItem and DrawItem events
            this.ComboBox1.DrawItem +=
                new DrawItemEventHandler(ComboBox1_DrawItem);
          
        }
       
      
        private void ComboBox1_DrawItem(object sender,
            System.Windows.Forms.DrawItemEventArgs e)
        {
            float size = 0;
            System.Drawing.Font myFont;
            FontFamily family = null;
            System.Drawing.Color animalColor = new System.Drawing.Color();
            size = 10;
            animalColor = System.Drawing.Color.Gray;
            family = FontFamily.GenericSansSerif;
          
            // Draw the background of the item.
            e.DrawBackground();
            // Create a square filled with the animals color. Vary the size
            // of the rectangle based on the length of the animals name.
            Rectangle rectangle = new Rectangle(2, e.Bounds.Top + 2,
                    e.Bounds.Height, e.Bounds.Height - 4);
            e.Graphics.FillRectangle(new SolidBrush(animalColor), rectangle);
            // Draw each string in the array, using a different size, color,
            // and font for each item.
            myFont = new Font(family, size, FontStyle.Bold);
            e.Graphics.DrawString(dropDawnList[e.Index], myFont, System.Drawing.Brushes.Black, new RectangleF(e.Bounds.X + rectangle.Width, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height));
            
            // Draw the focus rectangle if the mouse hovers over an item.
            e.DrawFocusRectangle();
        }
    }
}
上一篇:c# 爬虫
文章标题:C#.NET自定义下拉框实现选中下拉list的值和显示框内的值不同
文章链接:http://soscw.com/index.php/essay/59860.html