这篇将介绍一下C#的WinForm应用程序中的ComboBox控件的使用(不完整的。后期我会慢慢补充,我是用到一个补充一个(*^__^*) )

       1、相信您早就已经接触到ComboBox下拉框的使用,在很多网页或者应用软件中都可以见到,最最常见的就是下拉框选择男女性别、下拉框选择年份。那么我们在工具箱中拖入控件,那么在后台程序中如何实现读取被选择中的选项,(就好像是TextBox控件的用法TextBox1.Text就可以实现了读取文本框输入的字符了)呢?OK,其实方法很简单,直接调用ComboBox的SelectedValue属性就可以了,用法是:comboBox1.SelectedValue.ToString(); 等效于  TextBox控件的用法:TextBox1.Text

comboBox1.SelectedIndex.ToString();这里是调用SelectedIndex属性。

comboBox1.Text

       2、也许你会问,那么如何添加下拉菜单项目呀?请看下面:

(1)方法一://加入项>>>>>>>>>>>>>>>>>采用Items的属性调用Add方法
           comboBox1.Items.Add("广州");
           comboBox1.Items.Add("深圳");
           comboBox1.Items.Add("珠海");
(2)方法二:从工具箱拖入ComboBox控件后,选中控件,单击控件右上角的黑色向右三角形,在弹出的【ComboBox 任务】框中选择【编辑项...】,系统将弹出新的对话框【字符串集合编辑器】。在文本编辑框输入下拉显示的字符串,注意:每一行代表一个菜单选项,当你第一行为回车空行时候,则默认不显示值。最后单击确定即可。

如图所示。

python tkinter Combobox获取值 tkinter combobox属性_Text

                                      

python tkinter Combobox获取值 tkinter combobox属性_sql_02

(3)方法三:看到上图右边那部分了没有?【ComboBox 任务】有一个勾选项【使用数据绑定项】。如右上图所示,在“数据源”的下拉框中有一个项目是【添加项目数据源】。选择后进行下一步【数据源配置向导】,后面的步骤大家都懂吧,设置数据库链接,选择对应的表。完成后,再选择需要显示的【显示成员】和【值成员】。

 关于【选定值】,你可以不选择,则表示为当用户初始时候看不到选择项,需要用户自定义选择。当然啦,你一旦选择,就表示用户能够立刻看到默认的选定值。

(4)方法四:直接贴出实例,你懂得,小伙伴们:

private void Form1_Load(object sender,EventArgs


        {


string[] array = { " 机械工程学院" ," 经济管理学院" ," 外国语学院" ,"经济 管理学院" ,"自动化 学院" ,"计算科学与工程 学院" ,"印刷包装工程 学院" ,"水利水电 学院" ,"理 学院" };


            comboBox1.DataSource = array;


        }


另外,也可以这样:


       private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.Items.Clear();
            string[] items = { "MP3","WAV","RM","MPEG"};
            comboBox1.Items.AddRange(items);            comboBox1.Text = "请选择";
        }




(5)方法五:(最重要,也是最常用的方法) 》》》这里我就不详细说了,看栗子应该都可以看懂。>>>例子只是从项目中摘抄的,具体要运行请您读懂后,自己重写
            栗子1: 

            public class sqlClass
    {
        public SqlConnection sqlConnection = new SqlConnection("Data Source=ASUS-PC;Initial Catalog=example;Integrated Security=True");
       
    }

**************************************************************************************************************************************************************

            sqlClass sq1 = new sqlClass();

            string sql = "select specialtyid,specialtyname from specialtyinfo";
            SqlDataAdapter adp = new SqlDataAdapter(sql,sq1.sqlConnection);
            DataSet ds = new DataSet();
            adp.Fill(ds, "specialty");
            comboBox1.DataSource = ds.Tables[0].DefaultView;
            comboBox1.DisplayMember = "specialtyname";
            comboBox1.ValueMember = "specialtyid";

**************************************************************************************************************************************************************

           栗子2:   看图,要实现当用户单击选择电子邮箱名是否,右边的文本框立刻显示邮箱所属的公司

                             

python tkinter Combobox获取值 tkinter combobox属性_Text_03

     

 private void Register_Load(object sender, EventArgs e)
        {
            /**********绑定邮箱后缀名*********/
            DataSet ds = dsEmail(@"select * from Email");
            if (ds.Tables["Email"].Rows.Count != 0)
            {
                //cbxEmail为comboBox控件的属性名称(name)
                cbxEmail.Items.Clear();
                cbxEmail.DataSource = ds.Tables["Email"].DefaultView;
                cbxEmail.DisplayMember = "Email";
                cbxEmail.ValueMember = "ID";
                cbxEmail.Items.Add("请选择");

            }
        }
        private DataSet dsEmail(string sql)
        {
            SqlDataAdapter adp = new SqlDataAdapter(sql, DBConnect.ConnString);
            DataSet ds = new DataSet();
            adp.Fill(ds, "Email");
            return ds;
        }

*********************************>>>>>>>>>>>SelectedIndexChanged属性>>>>>>>>>>>>>***********************************************************************

    private void cbxEmail_SelectedIndexChanged(object sender, EventArgs e)
        {
            //采用绑定方法,但对于相同的数据库,此用法行不通。因此采用不绑定技术
            //txtCompany.DataBindings.Add(new Binding("Text", ds, "Email.Company"));//cbxEmail.Text 表示获取当前选定项的值

cbxEmail.Text+ "'");
            if (dsCompany.Tables[0].Rows.Count != 0)
            {
                //采用不绑定技术,进行绑定显示数据表字段
                this.txtCompany.Text = dsCompany.Tables[0].Rows[0]["Company"].ToString();
            }
        }

》》》》》》》》》SelectedItem和SelectedText之间的区别》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

ComboBox使用SelectedItem获取或设置列表中当前选定的对象。

这里先谈一下如何设置指定选中项:如果在列表中找到了该对象,则将它显示在ComboBox的编辑部分,并且将SelectedIndex 属性设置为相应的索引。

如果列表中不存在该对象,则SelectedIndex属性保留其当前值。 

比如:要在如下ComboBox的编辑部分中选中“闲暇收藏”这一项,使用SelectedItem实现代码如下:

this.ComboBox.SelectedItem = (object)"闲暇收藏";

//注:SelectedItem是指当前选定项的对象,而不是文本,故写代码时要注意字符串强制转换为‘object’对象类型


 


怎么获取当前选定项的文本值呢?方法有二:


(1)方法一:

str=(string)comboBox.SelectedItem; 或:

         comboBox.SelectedItem.ToString().ToLower()

(2)方法二:



      comboBox.SelectedText:表示组合框中当前选定文本的字符串,具体说是指你当前选中第几个字符,不是第几项。

        //获取或设置ComboBox中可编辑部分的选择文本    

      例如:         cmbTableName.SelectedText = tvLeft.SelectedNode.Parent.Name;           

      比如“我爱你”如果你用鼠标选中了“你”,那么comboBox.SelectedText就是当前项的第三个字符。

      比如当前项是“天安门”,如果你用鼠标选中了“门”,那么comboBox.SelectedText的值就是“门”。

      comboBox的DropDownStyle必须为Simple。

("")。