如何使用表示值的字符串设置组合值

本文关键字:设置 组合 字符串 表示 何使用 | 更新日期: 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;