这篇将介绍一下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 任务】框中选择【编辑项...】,系统将弹出新的对话框【字符串集合编辑器】。在文本编辑框输入下拉显示的字符串,注意:每一行代表一个菜单选项,当你第一行为回车空行时候,则默认不显示值。最后单击确定即可。
如图所示。
(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: 看图,要实现当用户单击选择电子邮箱名是否,右边的文本框立刻显示邮箱所属的公司
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。
("")。