📌  相关文章
📜  如何在C#中对ComboBox的元素进行排序?

📅  最后修改于: 2021-05-29 13:22:02             🧑  作者: Mango

在Windows窗体中,ComboBox在单个控件中提供了两种不同的功能,这意味着ComboBox既可以用作TextBox也可以用作ListBox。在ComboBox中,一次仅显示一个项目,其余项目显示在下拉菜单中。您可以使用Sorted属性对ComboBox中存在的元素进行排序。
如果要对ComboBox的元素进行排序,则将此属性的值设置为true,否则设置为false。此属性的默认值为false。这种排序不区分大小写,并且元素按升序排序。您可以使用两种不同的方法来设置此属性:

1.设计时:使用以下步骤对ComboBox控件中存在的元素进行排序是最简单的方法:

  • 第1步:创建一个Windows窗体,如下图所示:
    Visual Studio->文件->新建->项目-> WindowsFormApp
  • 步骤2:从工具箱中拖动ComboBox控件并将其放在Windows窗体上。您可以根据需要将ComboBox控件放置在Windows窗体上的任何位置。
  • 步骤3:拖放之后,您将转到ComboBox控件的属性以对ComboBox中存在的元素进行排序。

    输出:

2.运行时:比上述方法有些棘手。在此方法中,可以借助给定的语法以编程方式对ComboBox中存在的元素进行排序:

public bool Sorted { get; set; }

在这里,此属性的值是System.Boolean类型。以下步骤用于对ComboBox元素进行排序:

  • 步骤1:使用ComboBox类提供的ComboBox()构造函数创建一个组合框。
    // Creating ComboBox using ComboBox class
    ComboBox mybox = new ComboBox();
    
  • 步骤2:创建ComboBox之后,对ComboBox的元素进行排序。
    // Sort the elements of the ComboBox 
    mybox.Sorted = true;
    
  • 步骤3:最后使用Add()方法将此组合框控件添加到窗体中。
    // Add this ComboBox to form
    this.Controls.Add(mybox);
    

    例子:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
      
    namespace WindowsFormsApp11 {
      
    public partial class Form1 : Form {
      
        public Form1()
        {
            InitializeComponent();
        }
      
        private void Form1_Load(object sender, EventArgs e)
        {
            // Creating and setting the properties of label
            Label l = new Label();
            l.Location = new Point(222, 80);
            l.Size = new Size(99, 18);
            l.Text = "Select city name";
      
            // Adding this label to the form
            this.Controls.Add(l);
      
            // Creating and setting the properties of comboBox
            ComboBox mybox = new ComboBox();
            mybox.Location = new Point(327, 77);
            mybox.Size = new Size(216, 26);
            mybox.Sorted = true;
            mybox.Name = "My_Cobo_Box";
            mybox.Items.Add("Mumbai");
            mybox.Items.Add("Delhi");
            mybox.Items.Add("Jaipur");
            mybox.Items.Add("Kolkata");
            mybox.Items.Add("Bengaluru");
      
            // Adding this ComboBox to the form
            this.Controls.Add(mybox);
        }
    }
    }
    

    输出:

    排序之前:

    排序后: