如何在文本框中显示组合框中的值
本文关键字:组合 显示 文本 | 更新日期: 2023-09-27 18:25:49
我在SQL Server数据库中有一个名为"课程"的表,其中包含60门课程。
该表包含两列:COURSE_ID (PK), COURSE_NAME
我使用存储过程从数据库中获取所有课程:
create PROC [dbo].[GET_ALL_COURSES]
AS
SELECT * FROM COURSE
并像这样填充ComboBox
:
public FORM_CRS()
{
InitializeComponent();
CMB_COURSE.DataSource = CRS.GET_ALL_COURSES();
CMB_COURSE.DisplayMember = "COURSE_NAME";
CMB_COURSE.ValueMember = "COURSE_ID";
}
当我点击ComboBox
中的课程时,我想在TextBox
中显示该课程的COURSE_ID
,但我不知道如何显示。
使用组合框创建一个事件,例如onSelectedIndexChanged。。
void cmbCourse_onSelectedIndexChanged(object sender,EventArgs e) {
yourTextBoxName.Text=CMB_COURSE.SelectedItem.ToString();}
填充ComboBox
:后立即订阅SelectedValueChanged
事件
CMB_COURSE.DataSource = CRS.GET_ALL_COURSES();
CMB_COURSE.DisplayMember = "COURSE_NAME";
CMB_COURSE.ValueMember = "COURSE_ID";
CMB_COURSE.SelectedValueChanged += (s, e)
=> textBox1.Text = CMB_COURSE.SelectedValue.ToString();
当ComboBox
中的选择发生变化时,TextBox
将显示当前的COURSE_ID
值。
CMB.Click(object sender, EventArgs e) //click, changedvalue or something else what you want - change it for your neccesity
{
txt.Text = ((ComboBoxItem)CMB_COURSE.SelectedItem).Content.ToString();
//or, i can't test it now, well do it and edit this answer
txt.Text = CMB_COURSE.SelectedValue.ToString();
//or:
DataRowView row = (DataRowView)CMB_COURSE.SelectedItem;
if (row != null)
{
txt.Text = row[0] + " " + row[1];
}
}
最后一个解决方案是:https://stackoverflow.com/a/8518930/3810460
首先,我认为您应该将此链接作为引用进行检查。
接下来,假设这段代码与您要查找的内容相匹配:
private List<Course> Courses = new List<Course>();
public Form1()
{
InitializeComponent();
Courses.Add(new Course("Computer Science",1));
Courses.Add(new Course("English", 2));
Courses.Add(new Course("Art", 3));
Courses.Add(new Course("Biology", 4));
Courses.Add(new Course("Philosophy", 5));
Courses.Add(new Course("Humanities", 6));
CourseCB.DataSource = Courses;
CourseCB.SelectedText = Courses.ElementAt(0).CourseName;
CourseCB.DisplayMember = "CourseName";
CourseCB.ValueMember = "CourseID";
}
private void OnValueChanged(object sender, EventArgs e)
{
if (CourseCB.SelectedIndex != -1)
{
CourseIDTB.Text = CourseCB.SelectedValue.ToString();
}
}
public class Course
{
private string myCourseName;
private int myCourseID;
public string CourseName
{
get { return this.myCourseName; }
set { this.myCourseName = value; }
}
public int CourseID
{
get { return this.myCourseID; }
set { this.myCourseID = value; }
}
public Course(string name, int ID)
{
this.CourseName = name;
this.CourseID = ID;
}
}
您有正确的格式,但要正确使用它,您需要将不是SQL引用的对象的属性值提供给DisplayMember和ValueMember值。
我建议您执行查询,然后将值插入到Course对象中,这样您就可以使用此代码。