最近项目用到了combox的这两个事件
TextChanged和TextUpdate:
1如果是从下拉框里选择的数值的话 只会发生TextChanged事件
2如果是修改text属性 会先发生 TextUpdate 然后再发生 TextChanged事件
private void comboBox2_TextUpdate(object sender, EventArgs e)
{
this.cmbDoctor.Items.Clear(); //清空combox中的项
docKey.Clear(); //这是一个List<string>
for (int i = 0; i < docname.Count; i++)
{
bg = cmbDoctor.Text.ToUpper(); //将combox中的值转换为大写
if (docname[i].Contains(bg) || docmemory[i].Contains(bg)) //字符串中包含了bg字符串
{
docKey.Add(docname[i]); //list<string>中添加符合条件的元素
}
}
this.cmbDoctor.Items.AddRange(docKey.ToArray()); //然后将list<string>赋值给combox的项
this.cmbDoctor.SelectionStart = this.cmbDoctor.Text.Length; //光标出现在combox文字的后面
Cursor = Cursors.Default; //光标是箭头光标
this.cmbDoctor.DroppedDown = true; //显示其下拉框
}
private void comboBox2_TextChanged(object sender, EventArgs e) //DT是datatable类型 sqlDB()是我的医药基本类库可以看一下
我的博客
{
SqlDB db = new SqlDB();
string sql = "select hospital.name,department.name from hospital,department,doctor where doctor.name='" + cmbDoctor.Text + "' and doctor.depId=department.id and department.hosId=hospital.id ";
DT = db.FillDt(sql); //意思就是将sql语句执行 并且返回返回datatable类型
if (Convert.ToInt32(DT.Rows.Count) != 0) //表示有值
{
tbHospital.Text = DT.Rows[0][0].ToString(); //当combox2的值改变的时候更新与之相关的其他控件
tbOffice.Text = DT.Rows[0][1].ToString();
}
}