无法访问ComboBox.SelectedItem上的属性

时间:2012-07-26 21:30:58

标签: c# winforms parsing

Sooo,我一直收到错误:

  

'object'不包含'text'的定义,也没有扩展名   方法'text'接受'object'类型的第一个参数可以是   发现(您是否缺少using指令或程序集引用?)

以下代码 - 任何人都可以告诉我为什么?

    private void cboDataSets_SelectedIndexChanged(object sender, EventArgs e)
    {
        int cats = Int16.Parse(cboDataSets.SelectedItem.text);
        lblGenerateSelection.Text = ("you have selected " + (20 - cats) + "cats you'd like to adopt");
    }

5 个答案:

答案 0 :(得分:3)

cboDataSets.SelectedItem将返回对象。如果它确实包含一个具有.Text属性的对象,则必须将其强制转换

int name = 
    Int16.Parse(((SomeObectWithATextProperty)cboDataSets.SelectedItem).Text);

如果SelectedItem实际上是一个字符串,则可以改为:

int name = 
    Int16.Parse(((string)cboDataSets.SelectedItem));

如果SelectedItem是一个覆盖ToString()以显示有意义数据的对象,则可以执行此操作

int name = 
    Int16.Parse(cboDataSets.SelectedItem.ToString());

答案 1 :(得分:1)

SelectedItem只返回object类型的实例。您需要将其强制转换为实际具有属性“text”的类型:

((MyType)(cboDataSets.SelectedItem)).text

答案 2 :(得分:0)

错误似乎很清楚:cboDataSets.SelectedItem不包含名为text的属性,但您正在引用该属性。

你从哪里获得该属性名称?

SelectedItem返回列表项作为对象。根据需要输入cast以获取所需的数据。

答案 3 :(得分:0)

很可能你的财产是“文字”而不是“文字”:)

答案 4 :(得分:0)

尝试使用大" T",例如"文字"。