C#ComboBox字符串值到对象变量到类?

时间:2011-01-29 17:52:24

标签: c#

我正在尝试从组合框中获取字符串值,然后将其通过对象变量传递给类,并将其存储在字符串变量中。

 private void cboTimeZone_SelectedValueChanged(object sender, EventArgs e)
 {
     extTime1.timeZone = cboTimeZone.SelectedItem;
 }

我并不完全习惯使用组合框选项。

2 个答案:

答案 0 :(得分:1)

cboTimeZone是否包含字符串对象?在这种情况下,如果extTime1.timeZone是一个字符串,那么简单的强制转换就足够了:

extTime1.timeZone = (string)cboTimeZone.SelectedItem

如果cboTimeZone填充了myObject类型的对象,如果你在myObject类中覆盖它,你可以在项目上使用ToString()方法:

extTime1.timeZone = cboTimeZone.SelectedItem.ToString()

如果您选择要在组合框中显示的MyProperty的特定属性myObject,您可以先转换为该对象,然后使用

访问该属性
extTime1.timeZone = ((myObject)cboTimeZone.SelectedItem).MyProperty

获得该属性。

希望有所帮助。

答案 1 :(得分:1)

从您的问题中不清楚您的ComboBox是否受数据限制;无论哪种方式,我认为首先要确定SelectedItem是否确实是正确使用的属性,或者是否有另一个更合适的属性是个好主意。

如果您为DataSource设置ComboBox,则可能还设置了DisplayMember。在这种情况下,DisplayMember将确定数据源当前所选项目的哪个属性将作为文本显示在ComboBox中。

如果您设置了ValueMember,则还可以使用 SelectedValue 属性检索当前所选数据源项的属性。

SelectedItem 只需检索当前选定的数据源项。这可能是一个复杂的对象,或一个字符串对象,或其他东西;检查您的数据源。

ComboBox Text 属性只包含当前显示在ComboBox的文本输入字段中并且类型为{{1}的文本}。