ComboBox的SelectedIndexChanged事件

wind4fly 2011-01-08 06:35:04
简单说一下:
控件:
cboClass
cboStudentID
txtStudentName
初始化的时候执行:
DataSet dsClass = DbACE.Query("select * from class");
cboClass.DataSource = dsClass.Tables["ds"];
cboClass.DisplayMember = "class"; //班级列表
cboClass.ValueMember = "cid"; //班级ID

控件cboClass的SelectedIndexChanged事件:
DataRowView drv = (DataRowView)cboClass.SelectedItem;
string gId = drv.Row["cid"].ToString(); //获取班级ID
string sql = string.Format("select * from student where classid = {0}", gId);
DataSet dsStudentID = DbACE.Query(sql);
cboStudentID.DataSource = dsStudentID.Tables["ds"]; //绑定数据
cboStudentID.DisplayMember = "studentid"; //学号
cboStudentID.ValueMember = "name"; //姓名

控件cboStudentID的SelectedIndexChanged事件:
DataRowView drv = (DataRowView)cboStudentID.SelectedItem;
txtStudentName.Text = drv.Row["name"].ToString(); //获取姓名

程序运行时,cboClass和cboStudentID默认显示的都是第一个数据,
但是txtStudentName却显示的不是第一个。我这里测试是是第三个数据的名字。

...全文
807 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wind4fly 2011-01-08
  • 打赏
  • 举报
回复
我现在初始化的时候执行:
DataSet dsClass = DbACE.Query("select * from class");
cboClass.DataSource = dsClass.Tables["ds"];
cboClass.DisplayMember = "class"; //班级列表
cboClass.ValueMember = "cid"; //班级ID
//选择列表初始化已经完成,再进行获取覆盖一次姓名
txtStudentName.Text=cboStudentID.SelectedValue.ToString();
其他代码不变。

这样就能正常现实了。不过如果有更好的方法,麻烦贴出来!
wuyq11 2011-01-08
  • 打赏
  • 举报
回复
ComboBox的Text修改为ComboBox中其他选项的内容时,自然会导致该选项被选中,于是触发了SelectedIndexChanged事件
手动添加SelectedIndexChanged的事件处理程序
comboBox1.SelectedIndexChanged -= new EventHandler(comboBox1_SelectedIndexChanged);

comboBox1.SelectedIndexChanged += new EventHandler(comboBox1_SelectedIndexChanged);

wind4fly 2011-01-08
  • 打赏
  • 举报
回复
2楼方法不行。启动显示结果“System.Data.DataRowView”
我做了单步跟踪,程序是在DataSource绑定的时候触发事件的。
程序启动的时候是没有默认数据的,在绑定的时候才触发的SelectedIndexChanged事件,所以找不到Value。
不过,之后手动选择结果没错。
xixihaha_2011_098 2011-01-08
  • 打赏
  • 举报
回复
txtStudentName.Text=cboStudentID.SelectedValue.ToString()

111,098

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧