如何使用表示值的字符串设置组合值
本文关键字:设置 组合 字符串 表示 何使用 | 更新日期: 2023-09-27 18:03:09
我有一个带有组合框控件的表单。在表单加载事件处理程序中,我将组合框的数据源属性设置为枚举值。
public class myEnum
{
public static myEnum DOCUMENTO =
new myEnum("0", "DOCUMENTO");
public static myEnum BLOCCATO =
new myEnum("1", "BLOCCATO");
public static myEnum NONBLOCCATO =
new myEnum("2", "NONBLOCCATO");
static myEnum() {}
public myEnum (string code,
string descCaptionCode)
: base(code, descCaptionCode){}
public myEnum() {}
}
private void loadLockStateType()
{
List<myEnum> values = new List<myEnum>();
values.Add(myEnum.DOCUMENTO);
values.Add(myEnum.BLOCCATO);
values.Add(myEnum.NONBLOCCATO);
myCombo.DataSource = values;
}
这工作得很好,我填写了我的表单并点击保存。我的问题是,当我想用保存的数据重新加载此表单。我可以把所有的信息回来,除了我不确定如何设置组合框从枚举值在我获取的数据。
i've try with this
myCombo.SelectedItem = elemento.ReadOnly != null ? elemento.ReadOnly : LockStateObjectEnum.DOCUMENTO.Code;
其中elemento是一个具有String字段的类,该字段将表示comboBox
中的3个可能值之一public Class Elemento
{
...
public string ReadOnly
{
get;
set;
}
...
}
但它不起作用。它可以很好地读取元素中的值,例如elemento.ReadOnly = "2"
,但组合总是选择第一个元素myCombo.SelectedItem={0}
。我也尝试过myCombo.SelectedValue
,但它返回一个异常,说明:InvalidOperationException。我认为问题是组合加载了枚举,我试图用字符串设置一个值,但我不能把枚举也放在元素类中。我该怎么办?
谢谢
尝试Text代替SelectedItem
myCombo.Text = elemento.ReadOnly != null ? elemento.ReadOnly : LockStateObjectEnum.DOCUMENTO.Code;