选择组合框项目待修复

时间:2012-12-10 12:35:18

标签: c# .net winforms

我在windows窗体中有一个数据绑定组合框我用函数deptload()填充它IN FORM LOAD

public void DeptcomboLoad()
        {
            DataTable dt = depttrans.getDeptName();
            Cmb_Department.DataSource = dt;
            Cmb_Department.DisplayMember = "DepartmentName"; //CHAR
            Cmb_Department.ValueMember = "DepartmentPK"; //INT 
        }

现在当一个部门的员工(比如说帐户DepartmentName =“Accounts”,DepartmentPK = 23)登录时,我希望将ComboBox文本选为“acounts” 当我去获取ComboBox的选定值时,我应该得到23

我试过

Cmb_Department.selectedtext="Accounts"
Cmb_Department.Text="Accounts"

但它没有给出选定的值

任何人都可以提出建议

3 个答案:

答案 0 :(得分:2)

不要试图将值放入组合框中,而是尝试像这样获取SelectedItem

string txt= Cmb_Department.SelectedItem.Text

或只是:

string txt= Cmb_Department.SelectedText

答案 1 :(得分:1)

您可以通过发出以下内容来选择正确的项目:

Cmb_Department.SelectedValue = 23;

其中23来自其他一些变量,可能来自另一个对象,也许来自本地变量,无论你的情况如何。

现在,要获取所选值,您可以使用以下语句:

var val = Cmb_Department.SelectedValue;

获取所选文本(与文本关联的文本):

var text = ((DataRow)Cmb_Department.SelectedItem)["DepartmentName"];

我开出上述规定的原因是因为SelectedText属性是易变的,Text属性并不总是根据DropDownStyle的设置方式而有效。

然而,有些人可能会争辩说你可以发表同样的陈述:

var text = Cmb_Department.Text;

答案 2 :(得分:1)

要更改您可以使用的组合框的选定值 SelectedItem属性或SelectedIndex。 索引必须是数据源中的确切数字,而Item必须是数据源中的确切对象

相关问题