我正在尝试从组合框中获取字符串值,然后将其通过对象变量传递给类,并将其存储在字符串变量中。
private void cboTimeZone_SelectedValueChanged(object sender, EventArgs e)
{
extTime1.timeZone = cboTimeZone.SelectedItem;
}
我并不完全习惯使用组合框选项。
答案 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}的文本}。